0
我试图通过PHP脚本从远程HTTP服务器下载相当大的文件(最多可能超过1GB)。我使用fgets()逐行读取远程文件,并将文件内容写入通过tempnam()创建的本地文件中。但是,非常大的文件(几百MB)下载失败。有没有什么办法可以重写脚本来捕捉正在发生的错误?通过PHP下载大量文件时发生错误
由于下载只是整个流程较大的一部分,我希望能够处理下载并处理PHP脚本中的错误,而不必转到wget或其他进程。
这是我现在使用的脚本:
$tempfile = fopen($inFilename, 'w');
$handle = @fopen("https://" . $server . ".domain.com/file/path.pl?keyID=" . $keyID . "&format=" . $format . "&zipped=true", "r");
$firstline = '';
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
if ($firstline == '') $firstline = $buffer;
fwrite($tempfile, $buffer);
}
fclose($handle);
fclose($tempfile);
return $firstline;
} else {
throw new Exception ('Unable to open remote file.');
}
+1不知道一个。 – NikiC 2010-09-27 18:30:55
非常好,谢谢! (作为一个方面说明,我只是添加了代码,并且所有测试文件都能正常工作,所以一直未能真正测试它。) – Wige 2010-09-27 18:49:56