如何用jsp输出存在于oracle数据库Blob字段中的jpg图片

时间:2010-01-19 08:57:32   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:umn=106&thread=11003和http://forum.hibernate.org.cn/viewtopic.php?t=254)。通过(jdbc/jdo)和(jsp/servlet),服务器再把保存在Blob字段中的图片文件展现给用户。我这里给出一个关于展现的简单例子。1.在数据库中建表,并且表要包含Blob字段。2.用plsql developer这种客户端数据库工具,修改某条记录的Blob字段,存入一个jpg文件。3.用jdbc或者hibernate获取某条记录的Blob字段数据。(请参...
  正文:

在web-oa系统中,档案管理好象不可或缺。其中员工照片常常做成这样:用户通过浏览器上传员工相片,服务端程序接收图片文件,保存到数据库中的某个表的Blob字段里(关于文件上传和blob字段的更新,请参考http://www.javaresearch.org/article/showarticle.jsp?column=106&thread=11003和http://forum.hibernate.org.cn/viewtopic.PHP?t=254)。通过(jdbc/jdo)和(jsp/servlet),服务器再把保存在Blob字段中的图片文件展现给用户。我这里给出一个关于展现的简单例子。1.在数据库中建表,并且表要包含Blob字段。2.用plsql developer这种客户端数据库工具,修改某条记录的Blob字段,存入一个jpg文件。3.用jdbc或者hibernate获取某条记录的Blob字段数据。(请参考参考资料2)4.写一个jsp文件,来输出图片。如下所示//////////////////////cwry_pic.jsp/////////////////////////<%@page import="java.io.*"%><%@page import="com.jagie.business.profile.*" %><%@page import="java.sql.Blob"%><%response.reset();//这个设置很重要,否则客户端浏览器不能识别输出内容,导致弹出下载的对话框。response.setContentType("image/jpeg");ServletOutputStream sos = response.getOutputStream();//这里是用hibernate来根据id装载对象,你可以用别的方式如jdbc来组装对象,附文中有//BaseInfo这个javabean的示意性代码.BaseInfo bif= ProFileOperator.loadProFile(Long.valueOf("1"));//输出图片if(bif!=null&&bif.getPic()!=null){Blob blob=(Blob)bif.getPic();InputStream pi = blob.getBinaryStream();int blobsize = (int)blob.length();byte[] blobbytes = new byte[blobsize];int bytesRead = 0;while ((bytesRead = pi.read(blobbytes)) != -1) {sos.write(blobbytes, 0, bytesRead);}pi.close();sos.flush();}%>发布这个jsp到你的web服务器,再用浏览器访问这个jsp页面,你就可以看到保存在Blob字段中的图片了。附文:///////////////////BaseInfo.java示意性代码///////////////////////package com.jagie.business.profile;public class BaseInfo{//pkprivate Long id;//相片private java.sql.Blob pic;public Long getId() {return id;}public void setId(Long id) {this.id = id;} public java.sql.Blob getPic() {return pic;}public void setPic(java.sql.Blob pic) {this.pic = pic;}}最后,希望这篇文章能对你有所启发,如有错误,敬请批评指正!参考资料:1:http://www-900.ibm.com/developerWorks/cn/java/l-imgtxt/index.shtml2:http://forum.hibernate.org.cn/viewtopic.php?t=254


来源:http://www.002pc.com/master/College/Programming/JSP/12049.html

收藏到:

关于《如何用jsp输出存在于oracle数据库Blob字段中的jpg图片》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td