我在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'));
但结果是一样的。大多数文件都是正确下载的,但我需要知道这个文件不是原因。
答案 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中