php header输出文件 (你怎么使用PHP header来输出文件?)
在 web 开发过程中,有时候需要用到下载文件的功能,例如 Excel 文件、图片、PDF 等等,而 PHP 的 header() 函数就可以帮助我们实现这个功能。本文将介绍如何使用 PHP header() 函数来输出文件。
首先,我们需要知道 HTTP 协议中的响应头(Response Header)对于文件下载的作用。通过设置响应头,客户端(例如浏览器)就能自动识别文件,并根据文件类型选择下载或者在浏览器中打开。
下面是一个示例:
php
$file = 'example.pdf';
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="'.$file.'"');
readfile($file);
解释一下这段代码的作用:
- 第一行设置了文件名为 example.pdf,可以放到自己的项目路径下。
- 第二行设置响应头的 Content-Type,告诉浏览器这是一个 PDF 文件,浏览器就能自动识别文件类型。
- 第三行是 Content-Disposition,attachment 表示告诉浏览器下载这个文件,filename 用来指定下载时的文件名。
- 最后一行使用 readfile() 函数把文件内容输出到客户端。
可以看到,输出文件其实就是通过 PHP 输出响应头,然后再输出文件内容。如果想要输出其他类型的文件,只需要设置对应的 Content-Type 值即可。比如,输出 Excel 文件时,可以将 Content-Type 设置为 application/vnd.ms-excel。同样,需要指定文件名和使用 readfile() 函数输出文件内容。
注意,header() 函数必须在输出任何内容之前调用,否则会产生错误。
总结:
- PHP header() 函数可以帮助我们输出文件。
- 设置 Content-Type 可以告诉客户端文件类型。
- Content-Disposition 可以告诉客户端是直接打开文件还是下载文件。
- readfile() 函数用于输出文件内容。
希望这篇文章对你有所帮助!