• 后台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);
                }
            });

        }

  • 相关阅读:
    Python基本数据类型
    DNS服务
    在浏览器地址栏输入百度网址之后的故事(面试必考)
    C++对象的赋值和复制
    C++区别于其他语言的知识点总结
    SQL连接查询(最全面)
    源码堆栈信息保存 到此一游
    linux 内核调试之关键函数名记要
    记几个命令 转
    JS 奇淫巧技 转
  • 原文地址:https://www.cnblogs.com/mwd-banbo/p/10175969.html
Copyright © 2020-2023  润新知