showModelDialog弹出文件下载窗口的使用示例


Posted in Javascript onNovember 19, 2013

当点击我要修改时,需要在后台生成excel文件,同时需要提供下载文件功能。
生成excel文件容易、弹出”文件下载”也容易:
点击按钮,跳转到action中,在该action中生成Excel文件,填充数据,保存到临时文件夹中,然后在按钮的Click事件中,根据模板生成Excel报表,填充数据,保存到临时文件夹,然后output.wirte()。一切看起来很顺利。
Action如下(弹出"文件下载"窗口):

/**
*@paramresponse
*@paramdownloadFile
*/
privatevoidclientResponse(HttpServletResponseresponse,FiledownloadFile,StringfileName){
try{
response.reset();
response.setContentType("application/octet-stream");
//用来弹出保存窗口,设置为attachment
response.setHeader("Content-Disposition","attachment;filename="+newString(fileName.getBytes(),"ISO-8859-1"));
InputStreaminput=newFileInputStream(downloadFile);
OutputStreamoutput=response.getOutputStream();
intc;
//读取流并写入到文件中
while((c=input.read())!=-1){
output.write(c);
}
output.flush();
output.close();
input.close();
}catch(Exceptione){
}
}

但是当测试的时候,发现我点击”我要修改”按钮,总是会弹出一个新的窗口。百度一下,加了这段:<basetarget="_self">,这个表示在当前页打开页面。
如下:
base:为页面上的所有链接规定默认地址或默认目标
target:跳转到的目标页
<basetarget=_blank><!--在空白页打开-->
<basetarget=_parent><!--在当前页的上一页(父类)打开-->
<basetarget=_search><!--在浏览器地址栏打开-->
<basetarget=_self><!--在当前页打开-->
<basetarget=_top><!--在最初(首页)页打开-->
这个问题解决了,但是新的问题又来了,就是文件不可以下载。所以我有没有那种方法既可以在本页打开,又可以提供下载呢?想到了iframe框架。我们可以设置一个看不见的iframe框架,然后target=iframName就可以解决了。

<iframe id="download" name="download" height="0px" width="0px"></iframe>
<base target="download">

这<base...>位于<head></head>之间
Javascript 相关文章推荐
URL编码转换,escape() encodeURI() encodeURIComponent()
Dec 27 Javascript
js变量以及其作用域详解
Jul 18 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
Nov 18 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
Oct 30 Javascript
三分钟带你玩转jQuery.noConflict()
Feb 15 Javascript
JavaScript中的工厂函数(推荐)
Mar 08 Javascript
vuejs使用FormData实现ajax上传图片文件
Aug 08 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
Sep 28 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
Jan 28 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
js+css3实现简单时钟特效
Sep 13 Javascript
vue 动态创建组件的两种方法
Dec 31 Vue.js
基于jquery扩展漂亮的CheckBox(自己编写)
Nov 19 #Javascript
jquery showModelDialog的使用方法示例详解
Nov 19 #Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
Nov 19 #Javascript
禁止ajax缓存获取程序最新数据的方法
Nov 19 #Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
Nov 19 #Javascript
jQuery控制iFrame(实例代码)
Nov 19 #Javascript
jquery 检测元素是否存在的实例代码
Nov 19 #Javascript
You might like
PHP 高手之路(二)
2006/10/09 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
jquery图片切换插件
2015/03/16 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
浅谈Angular单元测试总结
2019/03/22 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
python定时执行指定函数的方法
2015/05/27 Python
Python文件及目录操作实例详解
2015/06/04 Python
python字符串,数值计算
2016/10/05 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
python程序控制NAO机器人行走
2019/04/29 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
2020/02/17 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
汽车专业毕业生自荐信
2013/11/03 职场文书
房地产开发项目建议书
2014/05/16 职场文书
通信工程专业求职信
2014/06/04 职场文书
怎么写工作检讨书
2014/11/16 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
python process模块的使用简介
2021/05/14 Python