public class base64Change { /** * @param imgStr base64編碼字符串 * @param path 圖片路徑-具體到文件 */ public static boolean generateImage(String imgStr, String path) { if (imgStr == null) return false; BASE64Decoder decoder = new BASE64Decoder(); try { // 解密 byte[] b = decoder.decodeBuffer(imgStr); // 處理數據 for (int i = 0; i < b.length; ++i) { if (b[i] < 0) { b[i] += 256; } } OutputStream out = new FileOutputStream(path); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } //圖片轉化成base64字符串 public static String GetImageStr() {//將圖片文件轉化為字節數組字符串,並對其進行Base64編碼處理 String imgFile = "F:\\tupian\\a.jpg";//待處理的圖片 // 地址也有寫成"F:/deskBG/86619-107.jpg"形式的 InputStream in = null; byte[] data = null; //讀取圖片字節數組 try { in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } //對字節數組Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data);//返回Base64編碼過的字節數組字符串 } }
public String ChangeBase64(String base64data,Integer certifiedtype,Integer userid,HttpServletRequest request) { //這一步很重要很重要很重要,因為base64的數據會有data:base64img, //所有需要將這個截取掉之后轉化,不然就是空白的打不開的文件 String base64img = certifieddata.substring(base64data.indexOf(",")+1); FileUploadUtils.generateImage(base64img,"F:/deskBG/86619-107.jpg"); //return null;是為了測試的,實際需求自己定 return null; }