Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

サーバーサイドで画像ファイルを作成しなくてすむ方法。

先回はお世話になりました、先回の続きのような内容ですがよろしくお願いいたします。現在画像ファイルをブラウザで表示する方法を下記の通りに行っています。
1. blob 型データとしてMySQL に保存
2. MySQL からFileOutputStream メソッドを用いて、元の画像型式ファイルを作成し作成したデータをサーバーの任意の場所へ書き出す
例:/WEB-INF/IMAGES/TEST.GIF
3. JSP で表示する。

このような手順で、MySQL のblob 型データを表示させています。
ここで質問なのですが、
blob 型データを、ファイル型式で出力するのではなく、メモリ上に、画像データを
作成し、jsp でブラウザに表示させるためには、どのような手順を踏んだらよいのか、
識者の方ご教示願えませんでしょうか。

3

回答

80428

閲覧

3件の回答

評価

0

imageのsrcをサーブレットなりjspなりにしておいて、responseのOutputStreamへデータを返してやればいい。

評価

0

$ さんお世話になります。
>responseのoutStreamへデータを返してやればいい。
下記の様な実装だと思うのですが、これですと、
・ファイルをダウンロードしますか、
・ブラウザで開きますかと、聞いてきます(ダウンローダのような動きをします)
ダウンローダのような動作ではなく、jsp の所定の位置にそのimage を表示させたいのですが
その部分を解決できません

>imageのsrcをサーブレットなりjspなりにしておいて
おそらく、この部分のことだと思うのですが、具体的にどの様な実装になるのでしょうか?
ご教示願えませんでしょうか。

ServletoutStream out = response.getoutStream();//doGet(HttpServletRequest request, HttpServletResponse response)
ByteArrayoutStream baos = new ByteArrayoutStream();
byte[] buffer = new byte[4096];
while (true) {
    int length = is.read(buffer);
    if (length == -1) {
        break;
    }
    baos.write(buffer, 0, length);
}
baos.writeTo(out);
out.flush();

評価

0

1. Content-Type
2. in-line / attachment の設定問題あたりでは

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。