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走下来所有图片就是一样的,是同步问题吗?
嗯,上传的时候已经编码过了,debug的时候一步一步走的时候正确,正常情况就不行了....
以上是关于Java 在for循环内用base64解析多张图片问题,求高手指点的主要内容,如果未能解决你的问题,请参考以下文章
uni-app图片压缩转base64位 利用递归来实现多张图片压缩
App端通过Base64多张图片上传到服务器,并存入数据库数据