MultipartFile 轉 file 轉base64字串
阿新 • • 發佈:2019-02-01
背景:因業務需求需將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]", "");