PHP强制下载文件可以使用readfile()函数。基本语法:
readfile('/path/to/file');
此函数会直接输出文件内容,我们可以通过其他方法来强制下载。实例代码如下:
// 获取文件名 $filename = 'test.txt'; // 获取文件路径 $path = '/path/to/'.$filename; // 获取文件大小 $filesize = filesize($path); // 设置 HTTP Header header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: binary"); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header("Content-Length: " . $filesize); // 读取文件并输出 readfile($path); // 退出 exit;
此代码的工作过程是:
1. 获取要下载的文件名、文件路径和大小
2. 设置HTTP响应头,声明文件类型及其他信息
3. 使用readfile()函数直接读取并输出文件内容
4. 调用exit使程序直接退出,传送文件内容给用户这些响应头的主要作用是:
– Content-Type: 声明文件类型,使用application/octet-stream通用类型
– Content-Disposition: 声明文件名称及类型(attachment)以触发浏览器下载弹窗
– Content-Length: 声明文件大小
– Expires和Cache-Control: 禁止缓存文件
以上就实现了PHP简单的强制文件下载功能。
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录