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 として返します。

'0'バイナリ イメージ ファイルとしてダウンロードする場合は、最後のパラメータを .の代わりに ,として使用できます'1'。[ '1' は公開画像の URL を取得するためのものです]

画像を Media クラスからダウンロードする場合は、クラスと同じ関数を使用できますMedia。まず、Property クラスからリスティング ID を取得する必要があります。

于 2015-03-25T09:29:57.233 に答える
0

「file_put_contents」関数は、GetObject クエリからのマルチパート/MIME 応答内の情報ヘッダーを解析しようとしているようです。むしろ、MediaUrls の直接の http ダウンロードを実行する必要があります。私は 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 など、他のバイナリ データやドキュメントを取得しないように、検索対象を「Image」の MediaTypes に制限することをお勧めします (この MLS については、Google グループで、あなたが投稿したものも参照してください)。

于 2014-12-04T21:59:15.647 に答える