Windows 上的 Apache2 无法下载大文件 (>34M)
Apache2 on Windows fails downloading large files (>34M)
我正在尝试在 Windows 上使用 PHP 设置 Apache2 网络服务器。我正在使用 EasyPHP 包来安装所需的服务器。只要我想托管更大的文件以供下载,一切都可以正常工作。大体上我的意思是 34M。当我尝试下载此类文件时,请求超时。如果我尝试下载具有相同文件名的较小文件,它会起作用。我不知道是什么原因造成的。我尝试直接在服务器上访问文件,但如果我尝试使用一些 PHP 代码获取文件,也会失败。
我在 httpd.conf 中将 LimitRequestBody 设置为 0,但我找不到任何可能对此有影响的选项。
编辑:未使用 PHP 时下载失败,我正在尝试使用直接 link 下载文件。所以我真的不认为这是与 PHP 相关的问题,而是与 apache 有关的问题。
如有任何帮助,我们将不胜感激。
我想归功于此,但已多次询问和回答。
How to increase maximum execution time in php
如果您觉得此答案有用,请标记为已回答。
内存限制没有帮助,但使用 readfile_chunked 函数有效!也在这里谢谢你!
<?php
function readfile_chunked ($filename) {
$chunksize = 1*(1024*1024); // how many bytes per chunk
$buffer = '';
$handle = fopen($filename, 'rb');
if ($handle === false) {
return false;
}
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
print $buffer;
}
return fclose($handle);
}
?>
我正在尝试在 Windows 上使用 PHP 设置 Apache2 网络服务器。我正在使用 EasyPHP 包来安装所需的服务器。只要我想托管更大的文件以供下载,一切都可以正常工作。大体上我的意思是 34M。当我尝试下载此类文件时,请求超时。如果我尝试下载具有相同文件名的较小文件,它会起作用。我不知道是什么原因造成的。我尝试直接在服务器上访问文件,但如果我尝试使用一些 PHP 代码获取文件,也会失败。 我在 httpd.conf 中将 LimitRequestBody 设置为 0,但我找不到任何可能对此有影响的选项。
编辑:未使用 PHP 时下载失败,我正在尝试使用直接 link 下载文件。所以我真的不认为这是与 PHP 相关的问题,而是与 apache 有关的问题。
如有任何帮助,我们将不胜感激。
我想归功于此,但已多次询问和回答。 How to increase maximum execution time in php
如果您觉得此答案有用,请标记为已回答。
内存限制没有帮助,但使用 readfile_chunked 函数有效!也在这里谢谢你!
<?php
function readfile_chunked ($filename) {
$chunksize = 1*(1024*1024); // how many bytes per chunk
$buffer = '';
$handle = fopen($filename, 'rb');
if ($handle === false) {
return false;
}
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
print $buffer;
}
return fclose($handle);
}
?>