我正在尝试设置Windows上使用PHP的Apache2 Web服务器。我正在使用EasyPhp软件包安装所需的服务器。只要我想托管较大的文件供下载,一切都可以正常工作。总的来说,我的意思是34m。当我尝试下载这样的文件时,请求会耗尽。如果我尝试下载具有相同文件名的较小文件,则可以正常工作。我不知道是什么原因引起的。我尝试直接在服务器上访问文件,但是如果我尝试使用一些PHP代码获取,也会失败。我将限制为httpd.conf中的限制设置为0,我找不到任何可能对此有影响的选项。
编辑:当不使用PHP时,下载失败,我正在尝试使用直接链接下载该文件。因此,我真的不认为这是与PHP有关的问题,而是与Apache有关的问题。
任何帮助将不胜感激。
我想对此表示赞赏,但已被问到并回答了很多次。如何增加PHP中的最大执行时间
如果您发现此答案有用,则标记为答案。
我在这里找到了答案:https://serverfault.com/questions/115906/is-some-limit-on-a-a-size-of-a-file-file-when-force-downloading-itloading-it-it-it-it-with-with-php-on-ap
内存限制无济于事,但是使用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);
}
?>