cURL无法下载完整文件

时间:2015-06-28 05:43:46

标签: 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_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'));

但结果是一样的。大多数文件都是正确下载的,但我需要知道这个文件不是原因。

1 个答案:

答案 0 :(得分:0)

尝试增加

private void compareTime(DateTime start, DateTime end)
{
    DateTime cur = DateTime.Now;
    if(DateTime.compare(cur, start)>0 && DateTime.compare(cur, end)<0)
        return 1;
    else
        return 0;
}

和/或

max_execution_time

在php.ini中