博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Base64编码图片存取与前台显示
阅读量:5260 次
发布时间:2019-06-14

本文共 1235 字,大约阅读时间需要 4 分钟。

需求:将Base64编码图片以BLOB类型存入数据库,需要时取出显示

后台:

String base64str=new String(log.getRequest_imgdata());//log为实体 括号里面是图像的get方法 返回为Byte[]型String new str=new String("\"data:image/jpg;base64,"+base64str+"\"");//拼装Base64字符串头response.getWriter().write(newstr);//将完整Base64字符串返回前台

前台Js:

var srcUrl = appJP.urlReqImg +"?log_id="+row.log_id;//请求URL        $.get(srcUrl,function(data){            var imgWindow = $("#imgDetail").html("");//接收Base64字符串,并转换为图片显示            $("#showImg").window({title:"图片详情",width:"auto"}).window("open").window("center");        })

 

以上已实现从数据库取出BLOB类型Base64图像数据(Java中为byte[])转换为字符串,并发送至前台显示

但是在测试中发现稍微大一点的图像(几百KB)在部分IE浏览器中不能显示,查询资料发现是IE8以下对Base64解码长度限制的问题

 

解决方案:更换后台到前台传输图像数据形式为流的形式

后台:  

String base64str=new String(log.getRequest_imgdata());BASE64Decoder decoder=new BASE64Decoder();byte[] imgbyte=decoder.decodeBuffer(base64str);//解码Base64图片数据response.setContentType("image/jpeg");ServletOutputStream outputStream = response.getOutputStream();outputStream.write(imgbyte);outputStream.flush();

前台js:

var srcUrl = appJP.urlReqImg +"?log_id="+row.log_id;var imgWindow = $("#imgDetail").html("");$("#showImg").window({title:"图片详情",width:"auto"}).window("open").window("center");

 

转载于:https://www.cnblogs.com/vayci/p/5439991.html

你可能感兴趣的文章
Djanto static静态文件配置
查看>>
WPF文本框只允许输入数字[转]
查看>>
JS产生随机一注彩票
查看>>
Interpreter(解释器)-类行为型模式
查看>>
事务的四种隔离级别和七种传播行为
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
J2SE 入门须知40条
查看>>
python 魔术方法
查看>>
resnet
查看>>
Denver Broncos nfl jersey authentic considering alot more
查看>>
[COURSE_PTHE] 16. 移动终端黑盒
查看>>
HDU 3572 最大流
查看>>
Bootstrap基础
查看>>
Javascript: 从prototype漫谈到继承(1)
查看>>
POJ 3974 Palindrome | 马拉车模板
查看>>
oracle表关联update和表建立索引
查看>>
JVM运行内存分类
查看>>
【学习】博弈相关:Nim
查看>>
BZOJ4552 HEOI/TJOI2016 排序 线段树、二分答案
查看>>
301重定向的实现方法(转)
查看>>