//接口
public InputStream loadInvoiceRider(String INVOICE_ID_); //實現層 @Override public InputStream loadInvoiceRider(String INVOICE_ID_) { String sql = "select RIDER_ from MP_INVOICE where INVOICE_ID_ = ?"; return mpJdbcTemplate.queryForObject(sql, new Object[] { INVOICE_ID_ }, new RowMapper<InputStream>() { public InputStream mapRow(ResultSet rs, int rowNum) throws SQLException { return rs.getBinaryStream(1); } }); }
//控制層 @RequestMapping(value = "loadInvoiceRider") public void loadInvoiceRider(String INVOICE_ID_, HttpServletRequest request, HttpServletResponse response, HttpSession session) { Map<String, Object> result = new HashMap<String, Object>(); try { getOperator(request, session); InputStream inputStream = invoiceService.loadInvoiceRider(INVOICE_ID_); response.reset(); ServletOutputStream out = response.getOutputStream(); byte[] content = new byte[65535]; int length = 0; if (inputStream != null) { while ((length = inputStream.read(content)) != -1) { out.write(content, 0, length); } } out.flush(); out.close(); log("admin", "InvoiceController.loadInvoiceRider", INVOICE_ID_, "0", null, request, session); } catch (Exception e) { logger.error(e.getMessage(), e); result.put("message", getErrorMessage(e, request)); result.put("success", false); StringWriter stringWriter = new StringWriter(); e.printStackTrace(new PrintWriter(stringWriter)); log("admin", "InvoiceController.loadInvoiceRider", INVOICE_ID_, "1", stringWriter.toString(), request, session); } }
前台直接把請求地址,放在圖片的src位置
{ xtype : 'actioncolumn', width : 280, dataIndex : 'INVOICE_ID_', text : '<spring:message code="INVOICE" />', align : 'center', renderer : function(value, metaData, record) { var id = metaData.record.id; Ext.defer(function() { Ext.create('Ext.Img', { height : 140, width : 250, src : 'loadInvoiceRider.do?INVOICE_ID_=' + value, renderTo : id, listeners : { scope : this, el : { dblclick : function(e, a) { var winViewImage = Ext.create('Ext.Window', { width : 750, height : 500, maximizable : true,//窗體最大化按鈕 title : '<spring:message code="image" />', layout : "fit", //窗口布局類型 modal : true, //是否模態窗口,默認為false resizable : false,//調整窗體大小 closeAction : 'hide', //關閉窗體實際上是隱藏窗體並未關閉銷毀此窗體對象(節約資源) plain : true,//窗體主體部分背景顏色透明 draggable : true,//充許拖動窗體 border : false, items : [ Ext.create('Ext.Img', { width : 750, height : 500, src : 'loadInvoiceRider.do?INVOICE_ID_=' + value }) ] }); winViewImage.show(); } } } }) }, 50); return Ext.String.format('<div id="{0}"></div>', id); } },