Java 在for循环内用base64解析多张图片问题,求高手指点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 在for循环内用base64解析多张图片问题,求高手指点相关的知识,希望对你有一定的参考价值。

for (int i = 0; i < imageArray.length; i++)
String img = imageArray[i];
String tempPath = GenerateImage(img); //调用base64解析图片
imgPath += tempPath + ",";


public synchronized String GenerateImage(String imgStr)
String imgFilePath = "";
if (imgStr == null) //图像数据为空
return imgFilePath;
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 currentTime = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
String path = "pic_upload";
ServletContext ctx = this.getServletContext();
path = ctx.getRealPath(path);
imgFilePath = path + "\\" + currentTime + ".png" ;
log.info("Image path:" + imgFilePath);
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return picLocation + currentTime + ".png" ;
catch(Exception e)
return imgFilePath ;

这样解析出来的图片都是一样的,数量是正确的,而且debug走下来所有图片就是一样的,是同步问题吗?

参考技术A 前提这些图片必须先经过base64进行编码。测试时,循环遍历每一张图片经过base64编码后的码值。只要码值不同,解析方法正确,图片不会出现相同追问

嗯,上传的时候已经编码过了,debug的时候一步一步走的时候正确,正常情况就不行了....

以上是关于Java 在for循环内用base64解析多张图片问题,求高手指点的主要内容,如果未能解决你的问题,请参考以下文章

前端批量上传图片后端怎么接收?

使用 NSURLSession 上传多张图片

uni-app图片压缩转base64位 利用递归来实现多张图片压缩

App端通过Base64多张图片上传到服务器,并存入数据库数据

BufferedImage缓存图片(data:image/jpg;base64,)转换base64输出与解析

请教java导出多张图片到Excel问题!