我試圖從外部服務器下載大量文件(大約3700張圖像)。這些圖像每個從30KB到200KB。使用PHP(很多圖像)從遠程服務器下載多個圖像
當我在1張圖片上使用copy()
函數時,它起作用。當我在一個循環中使用它時,我得到的只有30B圖像(空圖像文件)。
我試過使用copy
,cURL
,wget
和file_get_contents
。每次我都會得到很多空文件,或者根本沒有。
這裏是我試過的代碼:
wget的:
exec('wget http://mediaserver.centris.ca/media.ashx?id=ADD4B9DD110633DDDB2C5A2D10&t=pi&f=I -O SIA/8605283.jpg');
副本:
if(copy($donnees['PhotoURL'], $filetocheck)) {
echo 'Photo '.$filetocheck.' updated<br/>';
}
捲曲:
$ch = curl_init();
$source = $data[PhotoURL];
curl_setopt($ch, CURLOPT_URL, $source);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec ($ch);
curl_close ($ch);
$destination = $newfile;
$file = fopen($destination, "w+");
fputs($file, $data);
fclose($file);
一切似乎正常工作。不幸的是,我沒有太多的選擇一次下載所有這些文件,我需要一種方法使其儘快發揮作用。
非常感謝,安託萬
他們可能會阻止像這樣的大規模下載。嘗試詢問服務器/服務的管理員。 – Sammitch 2013-03-15 15:40:44
這可能是有道理的,但這臺服務器是這樣的大規模下載,這是一個系統,我已經去自己的圖像,而不是他們通過FTP發送給我。 – 2013-03-15 20:23:06