繁体   English   中英

php标头内容处置

[英]php header Content-disposition

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

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

但是,不会产生浏览器输出。 如何重新获得控制权? 我想让用户有其他选择。 (顺便说一句,取消注释单个“ Content-disposition”行就足以导致失去控制。)

我试过包括代码,将其放入函数中,ob_start,ob_end刷新等许多可能的组合,但均无济于事。 我确信我会忽略一些非常基本的内容,并希望您提出一些建议。

谢谢。

<?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>

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

这将开始下载,并根据需要将用户留在选项页面上。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM