2012-02-09 4 views
1

私はクライアントに画像を送信するために、次のコードがあります。今JAX-RS:画像を返信すると、どのフォーマットでクライアントが受信しますか?

@GET 
@Path("/images/{image}") @Produces("image/*") 
public Response getImage(@PathParam("image") String image) { 
File f = new File(image); 

    if (!f.exists()) { 
     throw new WebApplicationException(404); 
    } 

    String mt = new MimetypesFileTypeMap().getContentType(f); 
    return Response.ok(f, mt).build(); 
} 

は、クライアントがどの形式の画像を受け取ることになりますか?それはXMLで、または生のバイナリとしてラップされますか? 画像タグのsrcにレスポンスを入れるだけで、画像がレンダリングされますか?

ない場合は、どのように私は)IMGタグに

答えて

2

広告1を配置することができ、画像の中に、返された生のバイナリストリームを作ることができるファイルは、生のバイナリ(開かれたストリームとしてシリアライズされます

ad 2)画像をファイルとして返すリソースの場所を意味します。そうですか?そうならば、その答えはイエスである(あなただけの「< IMG SRC =」<binary_data>」/ >のようなHTMLページに生のバイナリデータを置くことができない)

+0

ありがとうございます。しかし、リソースのAjaxリクエストを作成していて、生ストリーム、イメージタグにイメージを表示させるにはどうすればいいですか? e? – Daud

+2

@Daud:別の質問のようです。 (これはクライアント側の問題であり、サーバー側の問題ではありません。) –

0

また、あなたのレスポンスヘッダなどにコンテンツタイプを追加することができますimage/jpeg、image/png、またはimage/gifを使用して、クライアントがレスポンスヘッダを読み取って画像の種類を自分自身で判断できるようにします。 あなたが投稿しているURLが画像ストリームを返す場合、 ajaxリクエストの必要はありませんサーブレットがサーブレットURLをイメージsrcに追加すると動作しますが、それは動作します。

関連する問題