如果我将 zip 文件的 urlhref
设为链接的链接并单击该链接,我的 zip 文件将被下载并打开它会得到我期望的内容。
这是 HTML:
<a href="http://mysite.com/uploads/my-archive.zip">download zip</a>
问题是我希望链接指向我的应用程序,以便我可以确定用户是否有权访问此 zip 文件。
所以我希望我的 HTML 是这样的:
<a href="/canDownload">download zip</a>
和我的页面PHP /canDownload
:
//business logic to determine if user can download
if($yesCanDownload){
$archive='https://mysite.com/uploads/my-archive.zip';
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=".basename($archive));
header("Content-Length: ".filesize($archive));
ob_clean();
flush();
echo readfile("$archive");
}
所以,我认为问题与header()
代码有关,但我已经根据各种谷歌和其他 SO 建议尝试了一堆与此相关的事情,但没有任何工作。
如果您回答我的问题,您很可能也可以回答这个问题:Zipped file with PHP results in cpgz file after extract