0

我正在尝试从新下载图像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++;
  }   
}

这是行不通的

4

2 回答 2

1

如果你想从 Property 类中下载图片,你可以使用这个 rets 函数

$rets->GetObject("Property", "Photo", $listingId, "*", 1);

listingId这将返回与特定图像 url关联的图像数组。

如果要下载为二进制图像文件,则可以使用最后一个参数 as '0',而不是'1'. [ '1' 用于获取公共图像 URL]

如果要从 Media 类下载图像,则可以使用与Media该类相同的功能。您应该首先从 Property 类中获取列表 ID。

于 2015-03-25T09:29:57.233 回答
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);

此外,您可能希望将搜索限制为“图像”的媒体类型,这样您就不会获得其他二进制数据或文档,例如虚拟游览 URL 或 PDF(请参阅google 组以获取您也在其中发布的此 MLS)。

于 2014-12-04T21:59:15.647 回答