/**
* @Title:base64ToFile
* @Description:TODO(base64流转文件)
* @param base64 流
* @param fileName 文件名字得有后缀
* @param savePath 保存路径末尾注意//结尾
* @return 图片路径
*/
public static String base64ToFile(String base64, String fileName, String savePath) {
File file = null;
String path = savePath+fileName;
// 创建文件目录
String filePath = savePath;
File dir = new File(filePath);
if (!dir.exists() && !dir.isDirectory()) {
dir.mkdirs();
}
BufferedOutputStream bos = null;
java.io.FileOutputStream fos = null;
try {
byte[] bytes = Base64.getMimeDecoder().decode(base64);
/*
* 报“java.lang.IllegalArgumentException: Illegal base64 character d”的问题
*
* jdk7:Base64.getDecoder().decode()
* jdk8:Base64.getMimeDecoder().decode()
*
* jdk7的编码结果包含换行
* jdk8的编码结果不包含换行
* jdk8无法解码包含换行的编码结果
* jdk8的编码结果使用jdk7进行解码
*/
file = new File(path);
fos = new java.io.FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return path;
}
JavaBase64流转文件
最新推荐文章于 2024-03-05 22:39:03 发布