java后台处理base64图片还原为文件

/**
 * 将base64图片解析成文件存放本地
 * @param imgStr
 * @return  本地临时文件的地址
 */
private static String  generateImage(String imgStr){
    if(Strings.isNullOrEmpty(imgStr)){
        return null;
    }
    BASE64Decoder decoder = new BASE64Decoder();
    //转换前端数据
    imgStr = imgStr.replaceAll(" ", "+");
    //去除多余部分
    imgStr=imgStr.replace("data:image/png;base64,", "");
    try {
        // Base64解码
        byte[] b = decoder.decodeBuffer(imgStr);
        for (int i = 0; i < b.length; i++) {
            if (b[i] < 0) {// 调整异常数据
                b[i] += 256;
            }
        }
        String filepath =System.getProperty("java.io.tmpdir") +"测试"+System.currentTimeMillis()+".png";
        File file  = new File(filepath);
        if(file.exists()){
            file.delete();
        }
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(b);
        fos.flush();
        fos.close();
        logger.info("路径"+filepath);
        return filepath;

    }catch(Exception e){
        return null;
    }
}

//imgStr=imgStr.replace(“data:image/png;base64,”, “”); 关键地方 根据图片类型 过滤对应的类型

你可能感兴趣的:(个人分享)