好的,这就是我重写它的方式。任何变化?这会有用吗?我已经在超时时添加了Javascript。
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
}
?>
<script type="text/Javascript">
window.setInterval(function()
{
window.location = "www.moneymovers.com";
}, 5000);
</script>:
答案 0 :(得分:1)
只要没有输出任何内容(回声),您就可以将位置标题放在任何位置。
如果你输出了一些东西,你可以输出这样的东西来重定向:
<script type="text/javascript">
window.location = "www.example.com";
</script>
编辑:
在你的情况下,据我所知,你无法做你想要的事情。您必须在调用者页面中管理此案例。由于您修改了内容处置,因此不会调用Javascript。
答案 1 :(得分:1)
您无法下载,然后执行标题重定向。一旦看到标题,客户端就会重定向,这意味着下载将无法正常工作。但是你也无法在下载后输出标题,因为这样就不会发生重定向。无论哪种方式,它都无法运作。
我建议在不同的级别上这样做。例如,当用户单击下载链接时,让一些JavaScript在新的选项卡/窗口中开始下载,然后重定向到当前选项卡中的所需位置。