【发布时间】:2013-03-04 09:39:47
【问题描述】:
我正在尝试从外部服务器下载大量文件(大约 3700 张图像)。这些图像每个大小从 30KB 到 200KB。
当我在 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);
似乎没有任何工作正常。不幸的是,我没有太多选择一次下载所有这些文件,我需要一种方法让它尽快工作。
非常感谢,安托万
【问题讨论】:
-
他们可能会阻止像这样的大量下载。尝试询问服务器/服务的管理员。
-
这可能是有道理的,但是这个服务器是为这样的大量下载而设计的,它是一个我自己去获取图像的系统,而不是他们必须通过 FTP 将它们发送给我。