fpassthru()
函数是 PHP 中用于将数据流(如文件)直接传输到输出流(如浏览器)的函数
fpassthru()
可以避免一次性加载整个文件到内存中,从而提高性能。fpassthru()
是一个很好的选择。move_uploaded_file()
配合使用:当用户通过 HTTP POST 上传文件时,你可能希望将文件保存到服务器上的某个位置,并立即将其传输给用户。在这种情况下,你可以使用 move_uploaded_file()
将文件移动到新位置,然后使用 fpassthru()
将文件内容传输给用户。stream_context_create()
配合使用:如果你需要通过网络传输文件,并且希望对其进行一些自定义设置(例如,设置超时时间或代理服务器),那么你可以使用 stream_context_create()
创建一个上下文,然后将其传递给 fpassthru()
。下面是一个简单的示例,演示了如何使用 fpassthru()
函数将文件从服务器传输到浏览器:
<?php
// 打开要传输的文件
$filename = 'path/to/your/file.txt';
$handle = fopen($filename, 'rb');
if ($handle === false) {
die('Error opening file: ' . $filename);
}
// 使用 fpassthru() 将文件内容直接传输到浏览器
fpassthru($handle);
// 关闭文件句柄
fclose($handle);
?>
在这个示例中,我们首先使用 fopen()
函数以二进制读取模式打开文件。然后,我们使用 fpassthru()
函数将文件内容直接传输到浏览器。最后,我们使用 fclose()
函数关闭文件句柄。