首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

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

2012-09-14 
JAVA+EXTJS+ORACLE在页面显示BLOB类型保存的图片JAVA后台? ? ? ?/** * 前台展示图片 * @throws Exception

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 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]

});

热点排行