Base64编码格式图片字符串-保存图片到Tomcant中

来源:互联网 发布:mac华康新篆体 编辑:程序博客网 时间:2024/06/08 11:20

知识点

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目录下,不存在需创建.


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解码失败");       }


 
原创粉丝点击