java保存base64图片_java保存base64位的图片,并且用时间文件夹分割
需求:首先獲取一個base64格式的圖片,然后保存在指定文件夾內,并且新建時間文件夾進行區分,如果時間文件夾存在就直接存儲,時間文件夾不存在就新建文件夾。/**
* 保存圖片
*
* @param base64image 圖片base64字符串
* @param name 圖片保存之后的名稱
* @return 文件名
*/
public static String saveBase64Image(String base64image,String name) {
Date date = new Date();
String dataForm = new SimpleDateFormat("yyyy-MM-dd").format(date);
String filePath = PropertiesTools.applicationProperty("app.image.path") + dataForm + '/';
File file = new File(filePath);
if (!file.exists()) {//如果文件夾不存在
file.mkdir();//創建文件夾
}
String fileType = FileTools.base64imageType(base64image);// "a.png";
String fileName = FileTools.randomFileName(null);
String fileContent = FileTools.base64imageContent(base64image);
String imageFullName = name + "." + fileType;
FileTools.saveBase64Images(fileContent, filePath + imageFullName);
return dataForm+'/'+imageFullName;
}
/**
* 保存圖片
*
* @param base64str 圖片base64字符串
* @param filePath 完整的文件路徑(包含文件名)
* @return 文件地址
*/
public static String saveBase64Images(String base64str, String filePath) {
// 參數校驗
if (base64str == null || filePath == null)
return null;
// 檢查目錄是否存在,同時生成目錄
String fileDirectory = FileTools.directoryFromPath(filePath);
if (!FileTools.generateDirectory(fileDirectory)) {
return null;
}
// 存儲文件
BASE64Decoder decoder = new BASE64Decoder();
try {
//Base64解碼
byte[] b = decoder.decodeBuffer(base64str);
for (int i = 0; i < b.length; ++i) {
//調整異常數據
if (b[i] < 0) {
b[i] += 256;
}
}
//生成jpeg圖片
OutputStream out = new FileOutputStream(filePath);
out.write(b);
out.flush();
out.close();
return filePath;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
總結
以上是生活随笔為你收集整理的java保存base64图片_java保存base64位的图片,并且用时间文件夹分割的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SublimeText2 快捷键
- 下一篇: java finally块_java f