首页 > 其他 > 详细

Ext下载文件

时间:2019-05-07 18:20:50      阅读:135      评论:0      收藏:0      [点我收藏+]

项目中前台用的是Ext JS,要从数据库中查询数据并导出为Excel表格

对此研究了下,代码如下:

前台代码:

 1         /**
 2          * 进行下载文件(form方式)
 3          */
 4         _downloadDraft:function () {
 5             var formId = ‘form-‘+Ext.data.IdGenerator.get(‘uuid‘).generate();//下载表单的id
 6             if (!Ext.fly(formId)) {      //如果不存在一个id为formId的form表单,则执行下面的操作
 7 
 8                 //下面代码是在创建一个表单以及添加相应的一些属性
 9                 var downForm = document.createElement(‘form‘);  //创建一个form表单
10                 downForm.id = formId;   //该表单的id为formId
11                 downForm.name = formId;  //该表单的name属性为formId
12                 downForm.className = ‘x-hidden‘; //该表单为隐藏的
13                 downForm.action = ‘pledgeRepoDlgQuoteController/downloadDraft.action‘; //表单的提交地址
14                 downForm.method = ‘post‘;  //表单的提交方法
15 
16                 document.body.appendChild(downForm); //将form表单追加到body里面
17             }
18             Ext.fly(formId).dom.submit(); //调用form表单的submit方法,提交表单,从而开始下载文件
19 
20             //因为表单已经提交了,文件也开始下载了,所以过河拆桥,把表单移除掉
21             //如果存在id为formId的表单,则将它移除掉
22             if (Ext.fly(formId)) {
23                 document.body.removeChild(downForm);
24             }
25         }

或者:

1          /**
2          * 进行下载文件(iframe方式)
3          */
4         _downloadDraft:function () {
5             var elemIF = document.createElement("iframe");
6             elemIF.src = ‘pledgeRepoDlgQuoteController/downloadDraft.action‘;
7             elemIF.style.display = "none";
8             document.body.appendChild(elemIF);
9         }

后台代码:

 1     @RequestMapping("/downloadDraft.action")
 2     public String downloadDraft( HttpServletRequest request, HttpServletResponse response) {
 3         logger.info("开始下载质押式回购对话报价草稿~~~");
 4         HSSFWorkbook hssfWorkbook =  this.pledgeRepoDlgDraftService.exportDraft();
 5         String fileName = "质押式回购对话报价草稿.xls";
 6         try {
 7             fileName = new String(fileName.getBytes("GBK"), "ISO8859-1");
 8             response.setHeader("Content-disposition", "attachement;filename="+fileName);
 9             response.setContentType("application/vnd.ms-excel");
10             OutputStream out =    response.getOutputStream();
11             hssfWorkbook.write(out);
12             out.close();
13             logger.info("结束下载质押式回购对话报价草稿~~~");
14         }catch (Exception e){
15             logger.info("下载质押式回购对话报价草稿中出现异常~~~");
16             e.printStackTrace();
17         }
18         return null;
19     }    

 

Ext下载文件

原文:https://www.cnblogs.com/thaipine/p/10826970.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!