showModelDialog弹出文件下载窗口的使用示例_Javascript教程-查字典教程网
showModelDialog弹出文件下载窗口的使用示例
showModelDialog弹出文件下载窗口的使用示例
发布时间:2016-12-30 来源:查字典编辑
摘要:当点击我要修改时,需要在后台生成excel文件,同时需要提供下载文件功能。生成excel文件容易、弹出”文件下载”也容易:点击按钮,跳转到a...

当点击我要修改时,需要在后台生成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教程学习
    热门Javascript教程学习
    编程开发子分类