Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在一个响应中发送包含可下载文件的html文件?_Javascript_Html_Jsp_Download_Attachment - Fatal编程技术网

Javascript 是否可以在一个响应中发送包含可下载文件的html文件?

Javascript 是否可以在一个响应中发送包含可下载文件的html文件?,javascript,html,jsp,download,attachment,Javascript,Html,Jsp,Download,Attachment,基本上,我使用iframe下载文件。我将iframe的源设置为要下载的文件。问题不在于我无法获得下载对话框。问题是下载开始后我无法关闭窗口 我想的是我可以用这个头发回一个文件 "Content-Disposition","attachment;filename=test.txt" 然后我想发回另一个HTML供浏览器显示。第二个文件的要点是关闭浏览窗口 顺便说一句:现在离开弹出窗口已经太晚了 第二个文件的要点是关闭浏览窗口 你不需要这个。只需在响应上设置要下载的文件的头就足以获得另存为对话框。您

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

我想的是我可以用这个头发回一个文件

"Content-Disposition","attachment;filename=test.txt"
然后我想发回另一个HTML供浏览器显示。第二个文件的要点是关闭浏览窗口

顺便说一句:现在离开弹出窗口已经太晚了

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


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

不,不能在同一响应中同时发送文件和页面

如果需要两个响应,则必须发送两个请求

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

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

下载完文件后,我还需要关闭窗口。基本上,我可以用window.close,但我不知道什么时候叫它。我需要等待答复。这就是为什么我希望我能立即发送回文件。一个用于下载,另一个带有JavaScrip以关闭窗口。我需要发送两个文件,一个用于下载,一个用于显示。我认为响应可以做到这一点,因为有时候浏览器会同时下载图片等等。我对多部分响应不太了解。对于某些文件,超时是可以的,但是如果文件太大,下载需要几分钟怎么办?有办法吗?@Grae:即使你关闭窗口,下载也应该继续。当您设置
href
时,只有从脚本返回后才会生效,因此存在超时,以便
href
可以在关闭窗口之前生效。