php header Content-disposition

时间:2012-08-31 17:22:21

标签: php

我有一个非常基本的问题,请参阅下面的代码段。 这是一个更大的程序的相关部分,我希望下载一个zip文件。显示的代码(带有注释)产生预期的浏览器输出“立即下载文件。”

当我取消注释代码时,zip文件已正确下载到我的浏览器中!

但是,不会生成浏览器输出。我该如何重新获得控制权?我想让用户有其他选择。 (顺便说一下,取消评论单个“内容处置”行就足以导致失去控制权。)

我已尝试将代码包含在函数中,ob_start,ob_end flush等的许多可能组合都无济于事。我相信我会忽略一些非常基本的东西,并会欣赏一些建议。

感谢。

<?php
$sZipFN = 'file.zip';
// header("Content-type: application/zip");
// header("Content-disposition: attachment; filename=$sZipFN");
// readfile($sZipFN);
$sMsg = "Download the file now.";        
?>
<html>
  <body>
    <p> <?php echo $sMsg; ?> </p>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

您无法 - 您必须重定向到选项页面,然后通过javascript重定向(document.location = 'http://download.url/';)开始下载

这将开始下载,并将用户留在选项页面,如您所愿。

如果下载无法启动,请不要忘记点击此处&#39;链接页面顶部附近的某处(以防javascript被禁用)