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