1. 程式人生 > >MultipartFile 轉 file 轉base64字串

MultipartFile 轉 file 轉base64字串

背景:因業務需求需將MultipartFile 轉 file 轉base64傳至第三方實現接入第三方檔案上傳

1.MultipartFile 轉 file

    ①首先在Spring-mvc.xml中進行注入

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
</beans>

    ②用緩衝區實現轉換即使用java 建立的臨時檔案 使用 MultipartFile.transferto()方法

public String uploadFAndD(@RequestParam(value = "file[]") MultipartFile mFiles, HttpServletRequest request,
File f = null;
try {
    f=File.createTempFile("tmp", null);
    mFiles.transferTo(f);
     f.deleteOnExit();     //使用完成刪除檔案   
} catch (HttpException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

2. file轉base64字串

    ① java之檔案轉為base64字元
 FileInputStream inputFile = new FileInputStream(f);
 String base 64=null;
  byte[] buffer = new byte[(int) f.length()];
  inputFile.read(buffer);
  inputFile.close();
  base64=new BASE64Encoder().encode(buffer);

   ②注意:java中在使用BASE64Enconder().encode(buffer)會出現字串換行問題,這是因為RFC 822中規定,每72個字元中加一個換行符號,這樣會造成在使用base64字串時出現問題,所以我們在使用時要先解決換行的問題

String encoded = base64.replaceAll("[\\s*\t\n\r]", "");