Php 卷曲罐';t下载完整文件

Php 卷曲罐';t下载完整文件,php,curl,Php,Curl,我使用PHP中的cURL下载文件,使用以下代码: set_time_limit(0); $tmp = __DIR__."\\downloads\\{$this->id}"; $fp = fopen ($tmp, 'w+'); $ch = curl_init($this->url); curl_setopt($ch, CURLOPT_TIMEOUT, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_seto

我使用PHP中的cURL下载文件,使用以下代码:

set_time_limit(0);    
$tmp = __DIR__."\\downloads\\{$this->id}";
$fp = fopen ($tmp, 'w+');
$ch = curl_init($this->url);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILE, $fp);
$r = curl_exec($ch);
curl_close($ch);
fclose($fp);
echo filesize($tmp)."\n";
但有时下载的文件大小小于原始文件(原始文件:3.2GB,下载文件:1.1GB),并且在使用curl命令行时,它会正确下载文件。尝试重新下载该文件将始终具有相同的结果,但下载的文件大小差异很小

我还尝试使用:

file_put_contents($tmp, fopen($this->url, 'r'));
但结果是一样的。大多数文件都已正确下载,但我需要知道此文件未正确下载的原因。

尝试增加

max_execution_time
和/或

memory_limit

在php.ini中

可能存在一些网络问题?你应该寻找一个解决方案,当下载停止时你可以继续下载。我可以毫无问题地下载其他更大的文件,除了这个文件。我假设这个文件有问题,但可以使用cURL、IDM和web浏览器在PHP之外成功下载。我增加了这两种浏览器,但都没有成功,我还尝试使用“shell_exec”调用命令行cURL来恢复下载,但立即停止下载,出现错误”(33)HTTP服务器似乎不支持字节范围。无法继续。“