2

MLS RETS サーバーからプロパティ イメージをダウンロードしています。メソッドを使用しGetObjectてプロパティ イメージをダウンロードしているときに、Getobjectメソッドが成功パラメータを返さず、イメージがローカル サーバーにダウンロードされないことがあります。解決策はありますか?

これが私のコードです:

   $photos = $rets->GetObject("Property", "Photo", $idata['propertymlsid'], "*", 0);        
    foreach ($photos as $photo) 
    {

        $imgval="";
        $imgval="{$photo['Content-ID']}-{$photo['Object-ID']}.jpg";
        if ($photo['Success'] == true) 
        {
        @file_put_contents("photos/{$photo['Content-ID']}-{$photo['Object-ID']}.jpg", $photo['Data']);
        @mysql_query("insert into tableName (pro_mlsid,photos_name,image_date)values('".$idata['propertymlsid']."','".$imgval."','".date('Y-m-d h:i:s')."')");   
        }else
        {
        // in this section i want to download image. please suggest what to do here? . i have record for this image in database for but could not download it.   
        } 

    }

コードを確認してください。上記のコードのelseセクションで画像をダウンロードしたい。

4

2 に答える 2

3

残念ながら、RETS プロトコルは画像を処理するために作成されたものではなく、プロセス全体にかなりの落とし穴があります。

  1. データベース内の項目が削除されると、RETS プロトコルはその変更を反映できません。リストの場合、これは非常にまれなイベントですが、画像の場合はそうではありません. どちらの方法でも、要求されたオブジェクトが見つからないか存在しないというエラーが発生します。つまり、オブジェクトが削除されたと想定し、自分のレコードを更新する必要があります。

  2. 画像はエージェントによって頻繁に更新され、削除または順序が変更されている可能性があります。

  3. イメージのダウンロード プロセスは 2 つあります。a) 最初にメタデータ レコードを取得し、次に b) を使用して画像自体を取得する必要がありますGetObject。ただし、その間にエージェントがイメージを削除した可能性があります。

  4. データの取得元によっては、2 つのイベント間に多くの遅延が生じる場合があります。たとえば、IDX は通常、MLS 自体からの RETS フィードへのアクセスではなく、セカンダリ データベースです。

つまり、コードはおそらく問題ありませんが、その画像のメタデータを要求したため、要求された画像は実際には削除されています。

プロセス全体が機能し、画像が欠落している場合、それは完全になくなっている可能性があります. 理論的には、2 番目のプロセスを実行して、実際のメタデータをフェッチする必要があります。返品がない場合は、この画像のレコードがなくなったと安全に想定できます。

于 2015-09-30T13:45:24.040 に答える
1

一部の不動産掲示板では、エージェントが破損した写真や無効なファイル (PDF など) をアップロードすることを許可しています。不動産業者が犯したこれらの間違いにより、RETS フィードが誤って更新され、有効な写真が存在することが示されますが、ダウンロードしようとすると失敗します。

else発言を削除するだけです。

于 2015-11-19T22:13:36.187 に答える