1

私はRETSベースのサービスを呼び出して、物件リストに関するデータを収集しています...そしてもちろん、これに関する主な側面の1つは写真の取得です。ただし、写真のデータは文字通り生の画像データです。

ÿØÿàJFIF``ÿá"ExifII*îhÿÛC       $.' ",#(7),01444'9=82<.342ÿÛC     2!!22222222222222222222222222222222222222222222222222ÿÀU"ÿÄ    ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚  %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ    ÿĵw!1AQaq"2B‘¡±Á  #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ?÷ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ 

などなどなど..。

この生データを変換/使用して、Webサーバー上の物理ファイルに変換するにはどうすればよいですか?

4

3 に答える 3

2

この生データを単純にファイルに書き込んでみてください。ファイル形式が常に JPG であることが確実な場合は.jpg、拡張子として設定します。

そうでない場合は、こちらをご覧ください。これは、適切なファイル形式を取得して、適切なファイル拡張子を設定するのに役立ちます。

編集RETSプロトコルはわかりませんが、画像のコンテンツタイプを返す可能性があり、プロセス全体がさらに簡素化されます。:)

于 2012-12-19T21:05:36.337 に答える
0

また、特定のリストのすべての写真に対してGetObjectリクエストを使用するときにストリームに複数のjpegを取得している場合は、ÿØÿàバイト(\ xff \ xd8 \ xff \ xe0)で分割し、 jpegファイルとして分割しますが、各jpegの先頭にÿØÿàを保持する必要があるため、分割を行った後、各チャンクの先頭にそれらを再挿入する必要があります。「RETSのような」サービスからもこれに遭遇し、分割の結果として生じるjpegファイル名に手動で添え字(_1、_2など)を追加する必要がありました。最終的には次のようになりました。

if response.find('\xff\xd8\xff\xe0') > -1:
    blist = response.split('\xff\xd8\xff\xe0')
    blist.remove("")  /* get rid of any empty list elements resulting from split */
    index = 1
    for img in blist:
        file_nm = os.path.join(photo_dir, "{0}_{1}.jpg".format(photo_id, index))
        with open(photo_file_nm, "wb") as photo_file:
            photo_file.write('\xff\xd8\xff\xe0' + img)
        index += 1

...ここで、photo_dirとphoto_idはこのブロックの外側で定義されています。この例はpythonですが、phpに非常に簡単に変換できます。

于 2013-01-30T21:28:25.177 に答える
0

RETS サーバーから MIME マルチパート オブジェクトを解析する必要があります。各行を手動で取得し、ヘッダーのどこにあるかを把握する必要がある MIME 区切り文字列でチャンクすることができます。

時間を節約したい場合は、phrets クラスのソース コードを参照してください (またはそのまま使用してください)。https://github.com/troydavisson/PHRETS/blob/master/phrets.php#L141

ここにいくつかの例があり ます https://github.com/troydavisson/PHRETS/wiki/GetObject

于 2013-06-04T21:26:32.357 に答える