我正在尝试从新的RETS
CRMLS
$photos = $rets->SearchQuery("Media","Media",$lid, array('Limit' => 'none', 'Select' => "MediaOrder,MediaURL"));
foreach ($photos as $photo)
{
if ($photo['Success'] == true)
{
file_put_contents("../images/{$photo['Content-ID']}-{$photo['Object-ID']}.jpg", $photo['Data']);
$count++;
}
}
这不起作用
答案 0 :(得分:1)
如果要从Property类下载图像,可以使用此rets函数
$rets->GetObject("Property", "Photo", $listingId, "*", 1);
这将返回与特定listingId
关联的图像数组作为图像网址。
如果要以二进制图像文件的形式下载,则可以将最后一个参数用作'0'
,而不是'1'
。 ['1'用于获取公开图片网址]
如果要从Media类下载图像,则可以使用与Media
相同的功能作为类。您应首先从Property类中获取列表ID。
答案 1 :(得分:0)
您的“file_put_contents”函数似乎正在尝试解析来自GetObject查询的multipart / mime响应中的信息标头。相反,你想要直接http下载MediaUrls。我不是一个php向导,但你会做更多的事情:
$photoUrls = $rets->SearchQuery("Media","Media",$lid, array('Limit' => 'none', 'Select' => "MediaOrder,MediaURL"));
while ($photo = $rets->FetchRow($photoUrls)) {
file_put_contents("../images/{$lid}-{$photo['MediaOrder']}.jpg", file_get_contents($photo['MediaURL']));
}
$rets->FreeResult($photoUrls);
此外,您可能希望将搜索范围限制为“图像”的MediaTypes,这样您就不会获得其他二进制数据或文档,例如虚拟游览URL或PDF(请参阅google group for this MLS that you also posted within)。