`

JAVA+EXTJS+ORACLE在页面显示BLOB类型保存的图片

阅读更多

JAVA后台

       /**

* 前台展示图片

* @throws Exception

*/

@SkipPrivilege

public void showImage() throws Exception{

String jsonString = null;

try {

if(null!=cigCode&&!"".equals(cigCode)&&null!=inoutStatus&&!"".equals(inoutStatus)){

jsonString="\"data\":{'name':'" + cigCode + "','url':'sellCigInoutSummaryQuery!outImageStream.action?cigCode="+cigCode+"&inoutStatus="+inoutStatus+"'}";

}else{

jsonString="\"data\":{'name':'" + cigCode + "','url':'images/nofoundimage.png'}";

}

} catch (Exception e) {

throw e;

}

jsonString = "{\"success\":true," + jsonString + "}";

response(jsonString);

}

/**

* 处理BLOB类型的图像流,输出到前台

* @throws Exception

*/

@SkipPrivilege

public void outImageStream() throws Exception{

Connection conn = null;

ResultSet rs = null;

PreparedStatement pstmt = null;

Session session = null;

ServletOutputStream out =null;

BufferedInputStream imgStream =null;

try {

session = dao.getSessionFactory().openSession();

conn = session.connection();

String sql = " select t.cig_photo from t_iso_rg_sell_cig_inout t where 1=1 "

      + " and t.cig_code = ? and t.inout_status = ? ";

pstmt= conn.prepareStatement(sql);

pstmt.setString(1,cigCode);

pstmt.setString(2,inoutStatus);

rs=pstmt.executeQuery();

if (rs.next()) {

Blob photoBlob = rs.getBlob("cig_photo"); 

out = response.getOutputStream();

int nSize =0;

byte[] bye;

int size = -1;

if(null!=photoBlob){

imgStream = new BufferedInputStream(photoBlob.getBinaryStream());//imgStream = ;

nSize = (int)photoBlob.length();

bye = new byte[nSize];

size = imgStream.read(bye,0,bye.length);

if(size>0){

  out.write(bye,0,size);

}

//显示默认图片

} else {

//得到默认图片的路径

String pathStr = request.getSession().getServletContext().getRealPath("images/nofoundimage.png");

File file = new File(pathStr);

imgStream = new BufferedInputStream(new FileInputStream(file));

nSize = (int)imgStream.available();

bye = new byte[nSize];

size = imgStream.read(bye,0,bye.length);

out.write(bye,0,size);

}

imgStream.close();

out.flush();

out.close();

  }

} catch (Exception e) {

throw e;

}finally{

closeAll(conn, rs, pstmt);

}

}

 

/**

* 关闭连接

* @param Connection

* @param ResultSet

* @param PreparedStatement

* @throws Exception

*/

public void closeAll(Connection conn, ResultSet rs, PreparedStatement pstmt) throws Exception {

try {

if (null != rs) {

rs.close();

}

if (null != pstmt) {

pstmt.close();

}

if (null != conn) {

conn.close();

}

} catch (Exception e) {

throw e;

}

}

 

 

EXTJS前台展示

 

 var imageRecord = new Ext.data.Record.create([

{name:'name'},

{name:'url'}

]);

var imageReader =  new Ext.data.JsonReader({root:'data',idProperty:'name'},imageRecord);

var imageProxy = new Ext.data.HttpProxy({url:'sellCigInoutSummaryQuery!showImage.action'});

var imageStore = new Ext.data.Store({

proxy: imageProxy,

reader: imageReader,

listeners: {exception:storeExceptionHandle}

});

//页面展示图片

var tpl = new Ext.XTemplate(

'<tpl for=".">',

'<div class="thumb-wrap">',

'<div class="thumb"><img src="{url}" width="125" height="140"></div>',

'</tpl>',

'<div class="x-clear"></div>'

   );

imageView = new Ext.DataView({

store: imageStore,

loadingText: '正在读取图片...',

tpl: tpl,

height: 140,

autoScroll: true,

singleSelect: true,

overClass:'x-view-over',

itemSelector:'div.thumb-wrap',

emptyText: '没有图片'

  });

 

this.imagePanel = new Ext.Panel({

title : "图片展示",      

region:"center",

frame: true,

border: true,

width : 125,   

       height : 140,

       items:[imageView]

});

分享到:
评论
1 楼 majiezyf 2013-10-22  
为什么我试验不成功呢?

相关推荐

    Java + ExtJs示例

    Java和ExtJS是两种在开发Web应用程序时广泛使用的技术。Java是一种多平台的、面向对象的编程语言,常用于后端服务器开发,提供强大的数据处理和业务逻辑支持。而ExtJS是一个JavaScript库,专用于构建富客户端应用,...

    spring+mvc+mybatis+extjs整合

    【标题】"spring+mvc+mybatis+extjs整合"是一个经典的Java Web开发框架组合,广泛应用于企业级应用。这个项目结合了Spring MVC作为控制层,MyBatis作为数据访问层,以及ExtJS作为前端展示层,构建了一个完整的三层...

    Java+Extjs实现单文件上传

    本话题主要关注如何使用Java后端和ExtJS前端框架来实现单文件上传的流程。下面将详细讲解这个过程涉及的关键知识点。 首先,我们来看Java文件上传。在Java中,处理文件上传主要依赖于Servlet API中的`Part`接口,这...

    EF+EXTJS+MVC+oracle框架

    "EF+EXTJS+MVC+Oracle框架"是一种常见的企业级Web应用开发架构,结合了Entity Framework(EF)、EXTJS、MVC模式以及Oracle数据库,为开发者提供了强大的数据处理、用户界面和应用程序结构管理能力。以下是对这个框架...

    S2SH+ExtJS4+Oracle9i技术实战开发电子商业汇票系统(银行内系统通讯)Java源码

    在本项目中,"S2SH+ExtJS4+Oracle9i技术实战开发电子商业汇票系统(银行内系统通讯)Java源码"是一个典型的基于Java的银行内部系统开发实例,它结合了多种技术来构建高效、安全的电子商业汇票处理流程。以下是关于这...

    2015年最新的搭建MyEclipse10+Spket+ExtJS的开发环境介绍

    搭建MyEclipse10+Spket+ExtJS的开发环境是一项关键步骤,特别是对于初学者而言,这将为JavaScript开发打下坚实的基础。本文将详细解释如何进行这一配置。 首先,我们来安装Spket插件。Spket是一个强大的JavaScript...

    Extjs+java+swf多文件上传进度条显示项目

    标题中的“Extjs+java+swf多文件上传进度条显示项目”是一个综合性的Web开发实践,涉及到前端的用户界面、后端的数据处理以及文件上传过程中进度反馈的实现。这个项目利用了Extjs库来构建用户界面,Java作为服务器端...

    ssh+extjs全注解的上传、分页、验证码的demo

    这个“ssh+extjs全注解的上传、分页、验证码的demo”提供了如何在SSH后端框架基础上,结合EXTJS实现文件上传、分页显示数据以及验证码功能的示例。 首先,Struts2作为MVC(模型-视图-控制器)框架,负责处理HTTP...

    php+Extjs+mysql实例

    在“php+Extjs+mysql实例”中,MySQL存储合同信息,如合同编号、合同名称、签订日期、甲方、乙方等字段。PHP通过预编译的SQL语句与MySQL进行通信,确保数据安全性和操作性能。例如,当用户需要查询特定合同信息时,...

    SSH+Extjs框架

    SSH+ExtJS框架是Web应用开发中的一个常见组合,它结合了Struts2、Hibernate和Spring三大主流Java EE框架,并引入了ExtJS作为前端展示层技术。这个框架的使用大大提高了开发效率,提供了灵活的数据管理和用户界面交互...

    eclipse+Extjs提示TOOLS破解版 spket

    eclipse+Extjs提示TOOLS破解版 spket eclipse+Extjs提示TOOLS破解版 spket

    评测系统(struts2 + hibernate + spring + extjs + oracle)

    本系统采用Struts+Spring+Hibernate+Extjs结合技术,严格按照软件工程学的方法进行开发,应用数据库为Oracle 10g。既采用Oracle数据库的坚强数据核心,又结合Struts+Spring+Hibernate框架的稳定性和实用性,还...

    SSH+ExtJs分页小例子

    在这个"SSH+ExtJs分页小例子"中,我们将探讨如何将这两种技术结合实现数据分页显示。 首先,我们来看NewsDAO.java文件。这个文件包含了两个关键方法:`findPageAll`和`totalRecord`。`findPageAll`方法实现了分页...

    ssh+extjs4整合开发

    在本示例中,EXTJS4的组件可能被用来创建一个用户友好的界面,用户可以通过这些组件与后端SSH服务进行交互,如查询、编辑和保存数据。 总结来说,"ssh+extjs4整合开发"涉及到的技术栈是Java后端开发的强大组合,...

    ASP.NET+ExtJS开发实例

    在这个“ASP.NET+ExtJS开发实例”中,我们将深入探讨这两者如何协同工作,创建出高效的Web解决方案。 ASP.NET框架提供了一个全面的开发环境,包括了开发工具、模板、自动化的生命周期管理以及内置的安全特性。它...

    最好用的通用后台管理extjs+MySQL+oracle+SQL server数据库源码

    这是本人自己总结最好用的通用后台管extjs+MySQL+oracle+SQL server数据库源码:主要运用了一下的知识: 1、主要运用的后台框架是extjs, 2、jsp+hibernate+Struts2+spring+ajax+jQuery, 3、用到了Java面向对象的...

    基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发

    基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发 项目说明 技术栈: SpringBoot MyBatis Redis MySQL FreeMarker ExtJs 基于SpringBoot+FreeMarker+MyBatis+...

    SSH+EXTJS页面图书管理系统

    SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统

Global site tag (gtag.js) - Google Analytics