php 下载文件 header (问:PHP 中如何使用 header 下载文件?)
在 PHP 开发中,文件下载是一个常见的需求。PHP 提供了 header 函数来控制响应头信息,从而实现文件下载的功能。本文将介绍如何在 PHP 中使用 header 函数下载文件。
一、准备要下载的文件
首先,我们需要确定要下载的文件路径,例如我们要下载的文件路径为 /var/www/html/test.pdf。
二、使用 header 函数设置响应头信息
接下来,我们使用 header 函数设置响应头信息,告诉浏览器需要下载文件。
php
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="test.pdf"');
header('Content-Length: ' . filesize('/var/www/html/test.pdf'));
上面的代码中,设置了三个响应头信息:
- Content-Type:指定了下载文件的 MIME 类型。由于下载的文件类型可能是多种类型,因此这里使用了 application/octet-stream,表示下载的文件为二进制文件。
- Content-Disposition:指定了下载的文件名称和需要提示下载。attachment 表示告诉浏览器需要下载文件,而不是直接在浏览器中打开。
- Content-Length:指定了下载文件的大小。由于下载文件的大小可能是变化的,因此需要通过 PHP 的 filesize 函数来获取。
三、输出文件内容
设置了响应头信息后,我们需要输出文件内容,可以使用 PHP 的 readfile 函数来完成:
php
readfile('/var/www/html/test.pdf');
最后,完整的代码如下:
“`php
<?php
$file = '/var/www/html/test.pdf';
if (file_exists($file)) {
header(‘Content-Type: application/octet-stream’);
header(‘Content-Disposition: attachment; filename=”test.pdf”‘);
header(‘Content-Length: ‘ . filesize($file));
readfile($file);
} else {
echo ‘文件不存在!’;
}
?>
“`
通过上面的代码,我们就可以在 PHP 中实现文件下载的功能。