0

我有一个非常基本的问题,下面的代码片段说明了这一点。这是一个更大的程序的相关部分,我希望在其中下载一个 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>
4

1 回答 1

1

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

这将开始下载并将用户留在您想要的选项页面上。

不要忘记在页面顶部附近的某处添加“如果下载无法开始,请单击此处”链接(以防 javascript 被禁用)

于 2012-08-31T17:58:37.857 回答