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 ...
随机推荐
- python windows下安装pip及rarfile
python之所以被广泛使用,倒不见得是本身语法简单,而是而nodejs/javascript一样把三方库的依赖管理简化了,而不用和java一样非得通过maven管理,而且还得打包后在classpat ...
- MySQL数据库索引的底层原理(二叉树、平衡二叉树、B-Tree、B+Tree)
1.MySQL数据库索引的底层原理 https://mp.weixin.qq.com/s/zA9KvCkkte2mTWTcDv7hUg
- Chrome:不受信任的证书----openssl签发带Subject Alternative Name的证书
Chrome下自签名证书提示无效的问题 发现chrome验证证书很严格,必须带有Subject Alternative Name.签发csr时,修改openssl.cnf : vi /etc/ssl/ ...
- LiteIDE 设置默认编译输出位置
go build命令默认输出路径是当前工作路径,这个显得比较乱,我习惯于把输出文件放置在项目的build目录下,这样方便查找,已经同步备份的时候排除不必要的文件. go build命令可以指定-o 输 ...
- Vue 自定义按键修饰符
如点击F2 触发某个事件 <input type="button" name="" id="" value="添加" ...
- 生命游戏(python实现,pygame显示图形)
# 游戏规则:# 生命游戏(Game of Life),或者叫它的全称John Conway's Game of Life.是英国数学家约翰·康威在1970年代所发明的一种元胞自动机.# 1. 活细胞 ...
- Jmeter+nfluxDB+Grafana性能监控平台
下载地址: nfluxDB下载地址:https://portal.influxdata.com/downloads/ Grafana下载地址:https://grafana.com/grafana/d ...
- os.environ详解
我们想要用Python获得一些有关系统的各种信息的时候就不得不想到os的environ,那这里面都具体包含了那些内容呢? 简介 对于官方的解释,environ是一个字符串所对应环境的映像对象.这是什么 ...
- TCP报文结构
来自:https://blog.csdn.net/qq_32998153/article/details/79680704
- [Golang] http.Post导致goroutine泄漏
记录一个用http.Post的问题 if _, err := http.Post("http://127.0.0.1:8080", "", nil); nil ...