zoukankan      html  css  js  c++  java
  • 后台java,前台extjs文件下载

    前台:

        function _loadFilesFjContent() {
            var records = Ext.getCmp('filesFjPanel').getSelectionModel().getSelection();

            if (records.length == 0) {
                Ext.MessageBox.alert('操作信息', '请选择附件');
                return;
            }

            if (records.length > 1) {
                Ext.MessageBox.alert('操作信息', '请只选择一个附件');
                return;
            }

            window.open("loadFilesFjContent.do?A_ID=" + records[0].get('A_ID'), "_blank", "width=40,height=30,resizable=yes,scrollbars=yes");
        }

    后台:

    控制层:

        @RequestMapping(value = "loadFilesFjContent")
        public void loadFilesFjContent(String A_ID, HttpServletRequest request, HttpServletResponse response, HttpSession session) {
            try {
                Map<String, Object> operator = getOperator(session);

                Map<String, Object> filesFj = filesFjService.loadFilesFj(A_ID, operator);
                InputStream inputStream = filesFjService.loadContent(A_ID, operator);
                response.reset();
                String fileName = URLEncoder.encode((String) filesFj.get("FNAME"), "UTF-8");
                response.setHeader("Content-Disposition", "attachment; filename=" + fileName);

                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();
            }
            catch (Exception e) {
                logger.error(e.getMessage(), e);
            }
        }

    服务层:

        @Override
        public InputStream loadContent(String A_ID, Map<String, Object> operator) {
            String sql = "select FCONTENT from FILES_FJ where A_ID = ?";
            return oaJdbcTemplate.queryForObject(sql, new Object[] { A_ID }, new ParameterizedRowMapper<InputStream>() {
                public InputStream mapRow(ResultSet rs, int rowNum) throws SQLException {
                    return rs.getBinaryStream(1);
                }
            });

        }

  • 相关阅读:
    pyqt 过滤事件
    python 编码问题
    xpath使用
    BeautifulSoup
    webpack.config.js 大概架构(3)
    图片,html,和其他的打包(2)
    今天开始第一篇
    第一次面试前端,记录下
    阻止默认事件和冒泡
    cookit localStorage sessionStorage 区别
  • 原文地址:https://www.cnblogs.com/mwd-banbo/p/10175969.html
Copyright © 2011-2022 走看看