千家信息网

java怎么实现后台处理base64图片还原为文件

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,本文小编为大家详细介绍"java怎么实现后台处理base64图片还原为文件",内容详细,步骤清晰,细节处理妥当,希望这篇"java怎么实现后台处理base64图片还原为文件"文章能帮助大家解决疑惑,下
千家信息网最后更新 2024年11月19日java怎么实现后台处理base64图片还原为文件

本文小编为大家详细介绍"java怎么实现后台处理base64图片还原为文件",内容详细,步骤清晰,细节处理妥当,希望这篇"java怎么实现后台处理base64图片还原为文件"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

后台处理base64图片还原为文件

/** * 将base64图片解析成文件存放本地 * @param imgStr * @return  本地临时文件的地址 */private static String  generateImage(String imgStr){    if(Strings.isNullOrEmpty(imgStr)){        return null;    }    BASE64Decoder decoder = new BASE64Decoder();    //转换前端数据    imgStr = imgStr.replaceAll(" ", "+");    //去除多余部分    imgStr=imgStr.replace(_"data:image/png;base64,", "");    try {        // Base64解码        byte[] b = decoder.decodeBuffer(imgStr);        for (int i = 0; i < b.length; i++) {            if (b[i] < 0) {// 调整异常数据                b[i] += 256;            }        }        String filepath =System.getProperty("java.io.tmpdir") +"测试"+System.currentTimeMillis()+".png";        File file  = new File(filepath);        if(file.exists()){            file.delete();        }        FileOutputStream fos = new FileOutputStream(file);        fos.write(b);        fos.flush();        fos.close();        logger.info("路径"+filepath);        return filepath;    }catch(Exception e){        return null;    }}
//imgStr=imgStr.replace(_"data:image/png;base64,", ""); 关键地方 根据图片类型 过滤对应的类型

java Base64解析

最近在业务场景中,需要对第三方传递进来的字符进行base64解密,根据第三方文档提供的解析工具,对数据进行了解析

关于Base64的解析方式如下

 String sign = "xxxxxxxxxxxxxxxxxxxxxxxx"; sun.misc.BASE64Decoder decode = new sun.misc.BASE64Decoder(); String json = new String(decode.decodeBuffer(sign));

使用sun.misc.BASE64Decoder对数据解析,放测试环境测试发现解析出来的字符串正确无误,

但是在上线之后,根据第三方传递的sign,解析出来之后发现字符串最后多了一个字符 "7",查询逻辑 没有发现问题,最后猜测是sun.misc.BASE64Decoder出了问题,于是换了Base64的解析jira

使用如下代码解析

String sign = "xxxxxxxxxxxxxxxxxxxxxxxxx";Base64 base64 = new Base64();String json = new String (base64.decodeBase64(sign.getBytes()));

发现返回json中数据正常,问题解决。

读到这里,这篇"java怎么实现后台处理base64图片还原为文件"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0