表单提交后自动启动文件下载(Auto start file download after form

2019-07-20 13:40发布

我有一个网页表单的用户完整的在线。 当他们按下提交,将开始他们的一个文件下载。

此刻,我处理表单提交和为用户生成一个合适的文件,并用合适的头部射击它关闭。 例如...

header('Content-type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="yourfile.txt"');
header("Content-Transfer-Encoding: binary");

然而,由于这将启动一个下载向右走,原来的形式是由浏览器留在屏幕上。

我真的想一旦下载完成去一些“谢谢”屏幕(或下载开始之前)。 我知道这是可能的,因为几乎你访问每一个下载网站做到这一点(通常抽你充满广告的下载开始前)。

所以,我如何显示“谢谢”屏幕,一秒钟后开始下载?

怎么会提出的任何解决方案的效果后退按钮的行为,因为我不想要的文件,而不形式再次下载被重新填充?

我使用PHP的服务器上,并且可以依赖于JavaScript(和jQuery)是可在客户端上。

谢谢。

Answer 1:

您可以发送的形式来记录感谢并放在那里元刷新文件下载:

<meta http-equiv="refresh" content="3;url=download.php">
<p>Thank you! The download will start in 3 seconds. If not, use this link to download the <a href="download.php">file</a></p>


Answer 2:

补充一下,说了些第二页“谢谢你,你的donwnload会在几秒钟内启动”并触发使用JavaScript下载:

$(document).ready(function(){
  window.setTimeout(function(){
    window.location = 'http://yourdownloadhost.com/file.zip';
  }, 1500);
});

或使用元重定向。



Answer 3:

您可以将隐藏的iframe到您的网页并提交表单这个iframe中。



文章来源: Auto start file download after form submission