Ext下载文件
项目中前台用的是Ext JS,要从数据库中查询数据并导出为Excel表格
对此研究了下,代码如下:
前台代码:
/**
* 进行下载文件(form方式)
*/
_downloadDraft:function () {
var formId = 'form-'+Ext.data.IdGenerator.get('uuid').generate();//下载表单的id
if (!Ext.fly(formId)) { //如果不存在一个id为formId的form表单,则执行下面的操作 //下面代码是在创建一个表单以及添加相应的一些属性
var downForm = document.createElement('form'); //创建一个form表单
downForm.id = formId; //该表单的id为formId
downForm.name = formId; //该表单的name属性为formId
downForm.className = 'x-hidden'; //该表单为隐藏的
downForm.action = 'pledgeRepoDlgQuoteController/downloadDraft.action'; //表单的提交地址
downForm.method = 'post'; //表单的提交方法 document.body.appendChild(downForm); //将form表单追加到body里面
}
Ext.fly(formId).dom.submit(); //调用form表单的submit方法,提交表单,从而开始下载文件 //因为表单已经提交了,文件也开始下载了,所以过河拆桥,把表单移除掉
//如果存在id为formId的表单,则将它移除掉
if (Ext.fly(formId)) {
document.body.removeChild(downForm);
}
}
或者:
/**
* 进行下载文件(iframe方式)
*/
_downloadDraft:function () {
var elemIF = document.createElement("iframe");
elemIF.src = 'pledgeRepoDlgQuoteController/downloadDraft.action';
elemIF.style.display = "none";
document.body.appendChild(elemIF);
}
后台代码:
@RequestMapping("/downloadDraft.action")
public String downloadDraft( HttpServletRequest request, HttpServletResponse response) {
logger.info("开始下载质押式回购对话报价草稿~~~");
HSSFWorkbook hssfWorkbook = this.pledgeRepoDlgDraftService.exportDraft();
String fileName = "质押式回购对话报价草稿.xls";
try {
fileName = new String(fileName.getBytes("GBK"), "ISO8859-1");
response.setHeader("Content-disposition", "attachement;filename="+fileName);
response.setContentType("application/vnd.ms-excel");
OutputStream out = response.getOutputStream();
hssfWorkbook.write(out);
out.close();
logger.info("结束下载质押式回购对话报价草稿~~~");
}catch (Exception e){
logger.info("下载质押式回购对话报价草稿中出现异常~~~");
e.printStackTrace();
}
return null;
}
Ext下载文件的更多相关文章
- HTTP下载文件名称编码说明
HTTP下载保存文件名 下载文件需要保存的名称 在响应报文头中 Content-Disposition 响应报文头域中指定, 例如 Content-Disposition: attachment; f ...
- extjs插件开发上传下载文件简单案例
前台,extjs,框架,mybatis,spring,springMVC,简单的文件上传下载案例. 必要的jar包,commons-fileupload-1.3.1.jar,commons-io-2. ...
- Web 在线文件管理器学习笔记与总结(9)下载文件
① 普通形式的文件可以使用超链接形式下载 <a href = '下载文件名'>点击下载</a> ② 如果下载图片.html 等类型的文件,使用header() 函数发送网页头信 ...
- Java下载文件的几种方式
转发自博客园Sunny的文章 1.以流的方式下载 public HttpServletResponse download(String path, HttpServletResponse respon ...
- tp3.2 上传文件及下载文件
公共方法 UploadFile.class.php() // 开始 , , , ,];];,; ;; ::::::;,) {//文件上传失败 //捕获错误代码$this->error($file ...
- Android使用Xutil3.0下载文件.md
Android使用Xutil3.0下载文件.md 新建项目: 引入依赖: implementation 'org.xutils:xutils:3.5.0' 添加权限: <uses-permiss ...
- java客户端调用ftp上传下载文件
1:java客户端上传,下载文件. package com.li.utils; import java.io.File; import java.io.FileInputStream; import ...
- 【文件下载】Java下载文件的几种方式
[文件下载]Java下载文件的几种方式 摘自:https://www.cnblogs.com/sunny3096/p/8204291.html 1.以流的方式下载. public HttpServl ...
- 使用curl在命令行中下载文件
http://m.blog.csdn.net/blog/mayadong7349/7019208 使用curl在命令行中下载文件 linux下curl简单应用详解 http://blog.sina.c ...
随机推荐
- django入门5使用xadmin搭建管理后台
环境搭建: pip install django==1.9.8 pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl pip install f ...
- Java的面向对象的原则
1.单一职责原则: /* * (有且只有一个引起功能变化的原因) * 如果在一个类中,承载的功能越多. * 交融的耦合性越高,被复用的可能性越低. * 耦合性高的话,当一个类的职责发生变化的时候,会引 ...
- 工控随笔_22_关于Profibus网络接线的规则
最近在做一个项目调试,用的是西门子的PLC,416-2 DP,下面挂了几个DP子网,在进行现场网络测试的时候,有几个走的DP网络的 绝对值编码器,无论怎么弄DP网络不能联通. 一开始我以为DP网线接的 ...
- 【嵌入式开发】裸机引导操作系统和ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )
[嵌入式开发]ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 ) 一. 内存 ...
- OCR(Optical Character Recognition)算法总结
https://zhuanlan.zhihu.com/p/84815144 最全OCR资料汇总,awesome-OCR
- makefile那些事儿
一.好处 自动化编译,一条make命令,整个工程可以完全自动编译,make命令是构建大型项目的首选方案. makefile就像一个shell脚本一样,用来定义规则,一个名称包含一条或多条命令,在终端m ...
- elk配置路径
elk/usr/local/etc/elasticsearch-6.5.1/usr/local/Cellar/logstash/6.5.1/./logstash -f/usr/local/Cellar ...
- Javascript / Nodejs call 和 apply
call: 改变了函数运行的作用域,即改变函数里面this的指向apply:同call,apply第二个参数是数组结构 例如: this.name = 'Ab'var obj = {name: 'BB ...
- SpringBoot之@EnableAutoConfiguration注解
源地址:https://blog.csdn.net/zxc123e/article/details/80222967 虽然定义使用了多个Annotation进行了原信息标注,但实际上重要的只有三个An ...
- 手把手教你创建electron+vue项目
electron可以结合前端的很多框架来进行快速的开发.在这里只讲一种electron结合vue并且使用前端的elementui来快速搭建一个项目页面. 第一步.创建electron 以管理员身份运行 ...