2013-01-04 21 views
0

我有一个HTML表单,像这样:HTML形式去新的一页,开始下载

<form method="post" enctype="multipart/form-data" action="script.php" align="center"> 
    <input type="submit" value="Run Program"/> 
</form> 

然后,我有PHP页面,script.php的。我会显示它,并自动开始下载。然而,当我添加了标题为开始下载:

header('Content-Description: File Transfer'); 
header('Content-Disposition: attachment; filename=' . $_FILES['upload']['name'] . '.tbx'); 
header('Content-Type: application/force-download'); 
header('Content-Length: ' . filesize($tbx)); 

下载已启动,但网页本身没有加载(可能是因为头说,我们只是要传输文件)。如何让页面正常显示自动开始下载?

回答

1

您需要首先加载HTML页面,然后在页面末尾对下载文件执行JavaScript位置请求。

<html> 
... your HTML .... 
<script type="text/javascript"> 
document.location = '... location of file to download ...'; 
</script> 
</body> 
</html> 
+0

太好了,谢谢!因为它是在一个PHP脚本echo命令中,所以我不得不使用'window.onload = function(){window.location = $ url; }'这样整个页面将在重定向之前加载,所以我可以有一个单独的PHP页面和下载逻辑。 –

1

你不能做那个服务器端。你必须做那个客户端。

您一次只能通过HTTP发送一个资源!只需发送一个包含JavaScript重定向到您的下载脚本的页面。