前端传来base64图片格式,后台解码成为图片并保存与本地

tech2025-06-21  3

这里要注意一下,后台接收后需要截取或是替换这个’data:image/png;base64,’,让它为空或是截取它后面的一大串 java代码如下: 我这里的imgStr是在前端已经处理过了,所有可以直接转换。 小伙伴们可以用以下方法替换

imgStr = imgStr.replaceAll("data:image/png;base64,", ""); public void fileUpload(@RequestBody String imgStr) { //对字节数组字符串进行Base64解码并生成图片 if (imgStr == null) { //图像数据为空 } BASE64Decoder decoder = new BASE64Decoder(); try { //Base64解码 byte[] b = decoder.decodeBuffer(imgStr); for (int i = 0; i < b.length; ++i) { //调整异常数据 if (b[i] < 0) { b[i] += 256; } } //新生成的图片 String imgFilePath = "D:\\vehicle\\uploadPath\\" + KeyUtil.genUniqueKey() + ".png"; OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } }

特别要注意 传入的base64编码在传输过程中是否会对特殊符号编码处理,如果会, 就用以下替换,这是我碰到的乱码问题

imgStr = imgStr.replaceAll("%2F", "/");//将%2F转成/ imgStr = imgStr.replaceAll("%3D", "=");//一样的意思

谢谢大家!!!

最新回复(0)