是否可以在一个响应中发送带有可下载文件的html文件?

时间:2010-08-30 13:28:09

标签: javascript html jsp download attachment

基本上,我使用iframe下载文件。我将iframe的源设置为我要下载的文件。那个问题并不是我无法获得下载对话框。问题是我无法在下载开始后关闭窗口。

我在想的是我可以使用此标题发回一个文件。

"Content-Disposition","attachment;filename=test.txt"

然后我想发回另一个HTML以供浏览器显示。第二个文件的重点是关闭浏览窗口。

顺便说一下:离开弹出窗口已经太晚了。

2 个答案:

答案 0 :(得分:0)

  

第二个文件的要点是关闭浏览窗口。

你不需要这个。只需使用要下载的文件在响应上设置该标题就足以获得另存为对话框。您无需在新/空白窗口中打开链接。只需让链接/表单指向所需的URL,它就会打开另存为对话框。当前打开的页面将保持不变。

答案 1 :(得分:0)

不,您不能在同一回复中同时发送文件和页面。

如果您想要两个回复,则必须发送两个请求。

或者,您可以开始下载,然后在下载开始后使用超时关闭窗口:

window.location.href = 'test.txt';
window.setTimeout(function(){
  window.close();
}, 100);