知识点
1.base64图片字符串必须进行空格替换//base64空格替换
imgStr = imgStr.replace(" ", "+");
2.Base64解码
BASE64Decoder decoder=new BASE64Decoder();
String decoderImgStr="";
try {
//Base64解码
byte[] b=decoder.decodeBuffer(imgStr);
for (int i=0;i<b.length;++i)
{
if(b[i]<0)
{//调整异常数据
b[i]+=256;
}
}
decoderImgStr=new String(b,"UTF-8");
System.out.println("解码后的图片地址:"+decoderImgStr);
}
catch (Exception e)
{
return ApiResponse.Fail("图片字符串base64解码失败");
}
3.文件保存路径,保存到tomcant的webapps目录下,不存在需创建.
![](https://img-blog.csdn.net/20171109111738833?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU2NjEwMTM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
String savePath= Configuration.getConfigurationByName("photoSavePath");
File dir = new File(savePath);
if (!savePath.endsWith("/")) {
savePath += "/";
}
if (!dir.exists()){
dir.mkdir();
}
String indexPath=savePath.toString()+"images/xufuji/";
File sf1=new File(indexPath);
if (!sf1.exists()){
sf1.mkdirs();
}
4. OutputStream 文件保存输出流,write flush close
OutputStream os=new FileOutputStream(indexPath +"\\"+fileName);
os.write(b);
os.flush();
os.close();
//图片保存
String filePath="";
String fileName=openId+".jpg";
//对字节数组字符串进行Base64解码并生成图片
if (imgStr == null){
return ApiResponse.Fail("图像数据为空");
}
//base64空格替换
imgStr = imgStr.replace(" ", "+");
BASE64Decoder decoder=new BASE64Decoder();
String decoderImgStr="";
try {
//Base64解码
byte[] b=decoder.decodeBuffer(imgStr);
for (int i=0;i<b.length;++i)
{
if(b[i]<0)
{//调整异常数据
b[i]+=256;
}
}
String savePath= Configuration.getConfigurationByName("photoSavePath");
File dir = new File(savePath);
if (!savePath.endsWith("/")) {
savePath += "/";
}
if (!dir.exists()){
dir.mkdir();
}
String indexPath=savePath.toString()+"images/xufuji/";
File sf1=new File(indexPath);
if (!sf1.exists()){
sf1.mkdirs();
}
OutputStream os=new FileOutputStream(indexPath +"\\"+fileName);
os.write(b);
os.flush();
os.close();
filePath= "/images/xufuji/"+fileName;
decoderImgStr=new String(b,"UTF-8");
System.out.println("解码后的图片地址:"+decoderImgStr);
}
catch (Exception e)
{
return ApiResponse.Fail("图片字符串base64解码失败");
}