/**
* base64字符串转化成图片
* 对字节数组字符串进行Base64解码并生成图片存储,并返回路径
* @param imgData 图片编码
* @throws IOException
*/
public static String generateImage(String imgData) throws IOException {
if (imgData == null) // 图像数据为空
return "";
BASE64Decoder decoder = new BASE64Decoder();
OutputStream out = null;
//获取文件自定义图片保存路径
String dPath = Config.getPhotoUrl("filePath");
String newFileUrl ="";
try {
//图片路径公共类
newFileUrl=addressPublic(dPath);
File imageFile = new File(dPath+newFileUrl);
byte[] b = decoder.decodeBuffer(imgData);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
out = new FileOutputStream(imageFile);
out.write(b);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
out.flush();
out.close();
return newFileUrl ;
}
}
/**
*上传图片的公共路径路径
* @param dPath
*/
public static String addressPublic(String dPath) {
String newFileUrl=null;
// 新的图片文件名 = 编号 +"."图片扩展名
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
String format = simpleDateFormat.format( date );
String[] split = format.split( "/" );
String urle= "";
for (int i = 0; i < split.length; i++) {
urle += split[i] + "/";
File file = new File( dPath + urle );
//判断文件夹是否存在
if (!file.exists() && !file.isDirectory()) {
//不存在的话,创建文件夹
file.mkdirs();
}
}
//截取老文件名的后缀
String uuid = UUID.randomUUID().toString()+ "";
//返回地址信息
newFileUrl = format +"/"+ uuid + "." + "jpg";
return newFileUrl;
}