0

サーバーからの画像をブラウザに表示しようとしています。このリンク http://balusc.blogspot.in/2007/04/imageservlet.htmlをたどっています。これはかなりよく書かれ、文書化されていると言わざるを得ません。私はこれを試しましたが、すべて正常に動作しています。

この画像を表示するためにajaxを使用しているときに問題があります。画像全体がdiv内のいくつかのコードに分割されているようです。

コードで使用されている出力ストリームがページに直接書き込まれていることは理解していますが、その出力ストリームを処理して、別のサーブレットを作成することなく、jsp のイメージ タグに画像を表示することは実際には不可能ですか。

読んでくれてありがとう

4

2 に答える 2

5

画像データを表示するために、AJAX 経由で画像データを要求してから自分で操作する必要はありません。<img>タグを使うだけ!

/my_urlが画像の場所である場合、

<img src="/my-url" alt="Appropriate description"/>

それをするでしょう。注:実際の画像/my-urlである必要はありません。適切な MIME タイプが設定された画像データを返す任意のリソース (サーブレットを含む) を指定できます。

タグを動的に作成する場合は、お気に入りのライブラリを使用するか、ネイティブ JS を使用して作成できます。

var oImg=document.createElement("img");
oImg.setAttribute('src', '/my-url');
oImg.setAttribute('alt', 'Appropriate description');
oImg.setAttribute('height', imgHeight);
oImg.setAttribute('width', imgWidth);
document.body.appendChild(oImg);

編集

これをサーバー側で実行したい場合 (もしそうなら、これは本当に AJAX ですか?)、data uri schemeを見たいと思うかもしれません。

このスキームを使用すると、イメージ タグに直接データを送信できます。HTTP リソースを提供する必要はありません。これを使用するには、出力ストリームを base64 に変換し、次を使用します。

<img src="data:image/png;base64,converted-data-stream-goes-here..." alt="Who needs HTTP?"/>

image/png、ソース データの MIME タイプによって異なります。

リンクされたウィキペディアのページを読んで、ここでのトレードオフを完全に理解してください。

于 2013-01-21T16:42:56.200 に答える
0

解決策をどのように達成したかを追加するだけです。ajaxを介して(フォームを送信しているページから)新しいページを参照し、新しいページで画像を使用し、そのsrc属性を介して、出力ストリームを介して画像を書き込むサーブレットメソッドを呼び出しました。

このようにして、サーブレットは私のイメージをどこにでも配置できる新しいファイルに書き込みます。

于 2013-01-22T14:52:16.030 に答える