js解析图片二进制流

接到个需求,需要将外部接口传入的图片base64码显示在前端html上。
本来很简单,直接将接口接到的code传到前台,然后<img src="data:image/png;base64," + base64Code>即可搞定。但是客户要求兼容IE6/IE7(IE6/IE7不支持以BASE64码的方式显示图片)。
没有办法,我只能在前台把接收到的base64Code传到另外一个jsp上,用Java把接收到的code转成图片流然后在response输出图片。
本来打算这么干 <img src="fixbase64.jsp?code="+ base64Code>,结果发现部分code超过了2300位,远远超过了IE6 GET的接收数据范围,要传那么大量的数据只能用POST,但是怎么都没想出来用POST怎么实现。我又想到直接把JAVA转换的图片流byte[]传到前台,但是我也没想出来怎么用js去解析并显示成图片。

求助各位大大,或者各位有更好的方案?后端是java

阅读 28.9k
4 个回答

类似这样?

$.post("fixbase64.jsp", {code:code}).then(function(data){
 $("img").attr("src", data.url);
})

其实我也不懂,可以写入到文件里么?这种方式好么?

你可以用发ajax,用post,然后后台直接二进制回写。触发ajax后可以弹个图层。
代码类似:

byte [] bs = Base64.decode("你要解析的字符串");
request.getWriter.writer(bs);

我只能想到两种思路:
1.base64存起来,返回一个短路径
2.前端js表单提交到一个iframe里面,也就是图片都用iframe去表示

另外,对这种要求兼容IE6/7的,早一点换一份工作吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏