import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.Calendar; import java.util.Random; import javax.servlet.http.HttpServletRequest; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import sun.misc.BASE64Decoder; public class ImageUntil { public boolean saveBase64File(String username,String imgStr) { // 對字節數組字符串進行Base64解碼並生成圖片 if (imgStr == null) // 圖像數據為空 return false; imgStr = imgStr.replaceAll("data:image/jpeg;base64,", ""); BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解碼 byte[] b = decoder.decodeBuffer(imgStr); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// 調整異常數據 b[i] += 256; } } // 生成jpeg圖片 String fileName=username + ".jpg"; HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); File f2=new File(System.getProperty("catalina.home")+ File.separator+"webapps"+File.separator+"uploadFile"); boolean exists2 = f2.exists(); if(!exists2){ f2.mkdirs(); } //String realPath=request.getSession().getServletContext().getRealPath("uploadFile/touxiang")+ File.separator; String tomcaturl=System.getProperty("catalina.home")+ File.separator+"webapps"+File.separator+"uploadFile"+File.separator+"touxiang"+ File.separator; File f1=new File(System.getProperty("catalina.home")+ File.separator+"webapps"+File.separator+"uploadFile"+File.separator+"touxiang"); boolean exists = f1.exists(); if(!exists){ f1.mkdirs(); } File file = new File(tomcaturl+fileName); OutputStream out = new FileOutputStream(file); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } }
對字節數組字符串進行Base64解碼並生成圖片,imgData是從客戶端發過來的,圖片經過base64位處理的字符串,並將圖片存在tomcat服務器根目錄下