首页 > 后端开发 > php教程 > 如何使用'header()”强制 PHP 文件下载?

如何使用'header()”强制 PHP 文件下载?

DDD
发布: 2024-12-04 14:54:10
原创
257 人浏览过

How to Force File Downloads with PHP Using `header()`?

使用 header() 使用 PHP 强制下载文件

1.问题:

您尝试让用户从您的服务器下载文件,但文件没有提示“另存为”对话框。

2.原因:

标头中的内容类型声明不正确。

3.解决方案:

确保将内容类型标头设置为 application/octet-stream 以进行文件下载:

header('Content-Type: application/octet-stream');
登录后复制

4.其他提示:

  • 使用 addcslashes 函数来保护文件名免受可能破坏标题的字符的影响。
  • 使用 Content-Disposition 为下载的文件设置特定的文件名:依恋;文件名=;标头。
  • 使用 Content-Length 标头指定内容长度。
  • 添加标头以防止缓存并确保文件被保存而不是显示在浏览器中。

5。示例代码:

$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);
readfile($file);
登录后复制

以上是如何使用'header()”强制 PHP 文件下载?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板