package util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import org.apache.commons.lang.StringUtils;
import com.alibaba.druid.util.Base64;
/**
* @description base64工具类
* @author
*
*/
public class Base64Util {
/**
* @desctiption base64转图片 (默认存放Tomcat中upload_files下,默认格式png)
* @param strBase64(base64),path(相对路径存储路径),filename(文件名,默认为时间戳)
* @author
*/
public static boolean base64ToPic(String strBase64,String path,String filename){
if(StringUtils.isEmpty(strBase64)){
System.out.println("Base64为空");
return false;
}
Date date = new Date();
long datetime = date.getTime();
String catalina_base=System.getProperty("catalina.base");
//上传文件保存位置
path =catalina_base+"/upload_files/"+path;
File f = new File(path);
if(!f.exists()){
f.mkdirs();
}
Base64 base = new Base64();
byte[] b = base.base64ToByteArray(strBase64);
for(int i=0;i<b.length;++i){
if(b[i]<0){
b[i]+=256;
}
}
String imgFilePath = path+"/"+datetime+".png";
if(StringUtils.isNotEmpty(filename)){
imgFilePath = path+"/"+filename;
}
try {
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Base64转图片失败");
return false;
}
return true;
}
/**
* @desctiption 图片转base64
* @param picPath (文件路径)
* @author
*/
public static String picToBase64(String picPath){
File f = new File(picPath);
if(!f.isDirectory()){
System.out.println("此文件路径无效!");
return null;
}
InputStream in = null;
byte[] data = null;
try {
in = new FileInputStream(picPath);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Base64 base = new Base64();
String base64 = base.byteArrayToBase64(data);
return base64;
}
}