使用 Header() 强制使用 PHP 下载文件
问题:
尽管进行了各种尝试,但用户体验使用 PHP 的 header() 函数提示从服务器下载文件存在困难。他们观察到发送的必要标头,但在显示保存对话框时遇到问题。
解决方案:
要成功强制文件下载,必须正确设置标头。以下代码解决了提出的问题:
$quoted = sprintf('"%s"', addcslashes(basename($file), '"\')); $size = filesize($file); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $quoted); header('Content-Transfer-Encoding: binary'); header('Connection: Keep-Alive'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . $size);
与之前尝试的主要区别:
已验证的浏览器:
此解决方案已被确认可在 Firefox 8.0.1、Chrome 15.0.874.121 和 Safari 5.1.1 中运行。
以上是如何使用 `header()` 在 PHP 中强制下载文件并避免浏览器显示问题?的详细内容。更多信息请关注PHP中文网其他相关文章!