2011-10-29 24 views
0

私のPHPの能力はほとんど存在せず、私は非常に単純なREST Webサービスを作ろうとしています。現在のサービスはデータベースに照会し、 'application/octet-stream'レスポンスで画像を返します。私は画像を完全に細かく返すASIHTTP(REST iPhoneフレームワーク)を介してこのWebサービスを呼び出しています:)PHP:XMLと画像で応答するWebサービスを作成するにはどうすればよいですか?

PHPサービスが画像とXMLファイルを返すようにする方法はありますか?私はこれを行う唯一の方法は、イメージバイト配列をXMLファイルに直接書き込むことだと考えています。もしそうなら、私はPHPでこれをどうやって行うのですか?

は、私が唯一の方法は、PHPを使用して画像データをエンコードし、あなたのiPhone上でそれをデコードBASE64になると思い、あなたに

答えて

1

ありがとうございます。 base64_encodeのマニュアルページを参照してください - 最初のコメントはイメージを読むためにそれを使用する方法を説明します。

1

一つの方法は、バイナリデータを取ることと、それbase64_encode(例えば)、あなたのXMLにすることを埋め込んで、その後、あなたがそれを受け取るときに使用して、それをBASE64_DECODEすることができます+ (NSData *)decodeBase64WithString:(NSString *)strBase64 {hereから:

NSData *data = [Base64 decodeBase64WithString:strBase64]; 
UIImage *image = [UIImage imageWithData:data]; 
+0

base64_encodeを使用する際に問題が発生しています。私が文字列に使用すると、それはうまくコード化されます。画像のバイナリデータに使用すると、何も返されません:/私はページにこれをエコーすることができ、多くの雑多な文字のように見えるバイナリデータがあることを知っています。 – user649716

+0

Ok ..私はchunk_splitをbinary64に適用するとうまくいくことが分かります。おかしいですね。 – user649716

2

の場合ASIHTTPはこれをサポートしています。イメージデータをXMLに埋め込むこともできますが、まず関連ドキュメントを読む必要があります。単にバイナリデータをXMLファイルにダンプすることはできません。最初にbase64のようなものに変換する必要があります。

IMOでは、両方のファイルを独立して送信する方がよい:画像のIDや何かを含むXMLを1回要求し、画像自体を取得するもう1つの要求を行う。

より堅牢なコードとは別に、イメージが完全に読み込まれる前にXML全体を解析することもできます。イメージがXMLメッセージよりもはるかに大きいことを見ると、その違いは目立つようになります。

関連する問題