我将一幅图片保存到数据库里,再将其读取出来显示到页面时,页面显示:
org.hibernate.lob.SerializableBlob@e5f01b这个是什么?图片在数据库的地址信息?id,name字段显示正常,该作什么处理呢???
org.hibernate.lob.SerializableBlob@e5f01b这个是什么?图片在数据库的地址信息?id,name字段显示正常,该作什么处理呢???
解决方案 »
- sql语句问题
- 留言板的问题,接上一个我发的帖子!各位大哥大姐救我一下吧,初学者,快疯了啊!
- 什么是jsp。
- 请问一个 try catch finally的问题
- 江湖救急,请帮忙,我的JSP程序联ORACLE库出现很头疼很意外的问题,急,急急~~~~~~~~~~!!!
- 高手们,赶紧回答啊! JSf 业务层bean 属性调用错误! 空指针异常
- 急招PHP.JSP程序员两名.如果有意请速和我们联系.长期在广州工作.
- 有关j2ee中各项技术什么时候使用的问题,请高手指教?
- 如何让tomcat4.1.12整合到计算机的服务里
- tomcat4,上传已经ok,又有新问题:修改的时候要重传商品图片,怎么把原来的删除,换掉新的?
- struts中修改与添加在同一个页面的方法或步骤,最好给一个例子
- 请问大虾,『标签』的实现原理
你用程序把一个图像对象保存到数据库里,数据库写进去的是那个对象的二进制信息,而非那张图片。比如你的类里面定义的可被序列化时写入的属性有图片的路径、图片的位置、图片的大小等,当然保存下来的对象的属性就是这些,你就要在读这个对象出来的时候利用这些信息设置图片的路径、位置、大小,然后展现出来。
//jsp页面
..............
</head>
...............//获取list语句
ServletOutputStream os = response.getOutputStream();
os.write(Img.instance().readImg(list));//list数据集合,Img.instance().readImg()自己写的函数,将数据转换为byte[]类型。
os.close();
<body>
.............
但如果这样写,就只显示一幅图片了,其他页面内容都没有了,而且list数据集不止一幅图片。
如果将上面3句放在页面显示图片的标签中,还是这个结果。<td>
<%ServletOutputStream os = response.getOutputStream();
os.write(Img.instance().readImg(list));
os.close();
%>
</td>
请问大家该如何正确的显示图片信息呢???
或者我现在知道blob的内存地址了,怎么获取这个blob的二进制信息???。
//通过blob的内存地址取得这个blob或blob的二进制输入流???怎么实现?
//然后再通过下面的语句输出图片
InputStream is = blob.getBinaryStream();//将blob转换为二进制输入流
OutputStream os = response.getOutputStream();//声明
byte[] b = new byte[is.available()];//声明
is.read(b);//将二进制输入流读入字节数组
os.write(b);//将数组信息输出
is.close;
os.close;