PHP强制下载文件函数实例代码

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简单的强制文件下载功能。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论