Java 后台处理数据库的二进制图片流

Posted 斑驳。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 后台处理数据库的二进制图片流相关的知识,希望对你有一定的参考价值。

    //接口
  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 后台处理数据库的二进制图片流的主要内容,如果未能解决你的问题,请参考以下文章

java转发二进制图片流原

java web二进制流的图片如何用response返回给前台

Java生成二进制文件与Postman以二进制流的形式发送请求

图片转二进制流存储到数据库

java怎么数据库中的二进制转换成图片类型

java中如何把一个图片转换成二进制流存入到类中啊?