【发布时间】:2011-08-01 12:23:01
【问题描述】:
我正在使用简单的文件下载脚本:
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
它在我的本地服务器上运行,最大 200mb。
当我在我的网站上尝试此代码时,它会下载 173KB 而不是 200MB 的文件。
我检查了所有内容,编写了一些自定义代码(使用 ob 函数和 fread 而不是 readfile),但无法下载大文件。
感谢您的回答。
- 我使用的是 Apache 2.2、PHP 5.3
- 处理大文件的所有 PHP 设置都可以。 (执行时间、内存限制……
【问题讨论】:
-
我的主机,dreamhost 有时会杀死消耗大量 CPU 或资源的脚本。这可能是你的情况。