1. 程式人生 > >Java 後臺處理數據庫的二進制圖片流

Java 後臺處理數據庫的二進制圖片流

renderer pin rto ogg order click true con cer

    //接口
  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);
                }
            }, 

 

Java 後臺處理數據庫的二進制圖片流