Как скачать изображения с нового RETS CRMLS

Я пытаюсь загрузить изображения из нового 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

Решение

Если вы хотите загрузить изображения из класса Property, вы можете использовать эту функцию rets

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

Это вернет массив изображений, связанных с конкретным listingId как URL изображения.

Если вы хотите скачать в виде двоичных файлов изображений, вы можете использовать последний параметр как '0', вместо '1', [‘1’ для получения общедоступных изображений URL-адресов]

Если изображение должно быть загружено из класса Media, вы можете использовать ту же функцию с Media как класс. И сначала вы должны получить идентификатор листинга из класса Property.

1

Другие решения

Кажется, ваша функция file_put_contents пытается проанализировать информационные заголовки в ответе multipart / mime из запроса GetObject. Скорее, вы захотите сделать прямую 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);

Кроме того, вы, возможно, захотите ограничить свой поиск типами MediaType «Image», чтобы не получать другие двоичные данные или документы, например URL-адреса виртуальных туров или PDF-файлы (см. группа Google для этого MLS, который вы также опубликовали в).

0

По вопросам рекламы [email protected]