5

JSP 内に画像を動的にロードする必要があります。を試してみました <img src="servletUrl?p1=x&p2=y"/>が、問題は URL が長すぎて GET を使用して送信できないことです。

現在、POST 呼び出しを実行しています。サーブレットから、送信したパラメーターに基づいて円グラフの画像を生成しています。画像は永続化されないため、「images/image1.jpg」のようなものを返して、それを画像の src として設定することはできません。

そのため、画像をバイト配列として返し、適切な画像コンテンツ タイプを設定しています。

私の質問は: javascript で画像バイトを取得したら、対応する img タグに表示するにはどうすればよいですか?

これは私のAJAX呼び出しです:

new Ajax.Request(url, {
        method: 'post',
        parameters: params,
        onComplete: function(request) {
                    alert(request.responseText);      
        }
});
4

2 に答える 2

2

私はこれを自分で試したことがありませんが、うまくいくはずです。dataUrlを使用して、イメージを作成し、そのsrcを設定できます。byte[]これを機能させるには、inをbase64でエンコードされた文字列に変換する必要があります。

new Ajax.Request(url, {
        method: 'post',
        parameters: params,
        onComplete: function(response) {
            var img = new Image();
            img.src = "data:image/png;base64," + response;

            document.body.appendChild(img);
        }
});
于 2012-05-21T09:12:45.707 に答える
0

これが私の頭の上からの解決策であり、すべてのブラウザで動作するはずです:

AJAX と<img>タグの代わりに<iframe>、必要なすべての POST パラメーターを含む非表示のフィールドが事前に入力されたフォームを使用し、onloadこのフォームを画像提供スクリプトに送信するようにハンドラーを設定します。このスクリプトが、ページの残りの部分をそのまま維持しながら、この iframe に表示される純粋な画像を返すようにします。

于 2012-05-21T09:23:48.373 に答える