我制作了自己的简单解决方案版本,用于在 PHP 中发送大文件。它使用文件块。该解决方案来自各种来源,我复制粘贴以下代码来实现“分块”:
$handle = fopen($filename, 'rb');
while (!feof($handle))
{
print(@fread($handle, $chunksize));
ob_flush();
flush();
}
fclose($handle);
由于它用于print
将每个块发送到浏览器,因此它对字符编码非常敏感,其中 PHP 脚本被编码。例如,我注意到,当脚本保存在 中时ANSI
,下载的文件已损坏。只有,如果我保存并上传编码为 的脚本utf-8
,文件就可以了。
有没有更好的功能,而不是print
做同样的事情(将文件发送到浏览器),这将是脚本文件编码的独立 - 因为,例如,会强制二进制传输到浏览器?