当用户点击“下载此文件”链接时,我希望用户能够下载文件。
使用场景:用户单击链接后,Web应用程序将生成一个文件并将其作为下载“推送”。
以下是我的PHP代码。尽管服务器上的文件正确生成,但它没有被下载(也没有显示下载对话框)。
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$filename."\"");
header("Content-Transfer-Encoding: binary");
readfile('file.zip');
我试图添加以下内容,但它没有起作用:
header("Location: file.zip"); // not working
虽然我找到了一个JavaScript解决方案(可行),通过尝试以下重定向:
window.location.href = 'file.zip';
问题是执行上面的JavaScript会尝试“卸载”当前窗口/表单,这在我这种情况下行不通。
是否有一种仅使用PHP就能“强制”下载文件(在这种情况下为'file.zip')的解决方案?
Content-Transfer-Encoding
不是一个 HTTP 头部。只是这么说一下。 - DaSourcerer