• 締切済み

BLOBをダウンロードして別ウインドウで表示したい。

申し訳ありありませんが、どなたか答えていただけると幸いです。 byte[] data = bl.getBytes(1, (int)bl.length()); int imgSize = (int)bl.length(); String file = URLEncoder.encode(rs_index.getString(ファイル名)); response.setContentType("application/octet-stream-dummy"); response.setHeader("Content-Disposition","inline; filename=\"" + file + "\""); response.setHeader("Pragma", ""); response.setHeader("Cache-Control","max-age=0"); response.setContentLength(data.length); response.getOutputStream().write(data); response.flushBuffer(); こんな感じなのですが、IEでダウンロードして表示をしますと、 IEでEXCELなどが表示されてしまいます。 エクスプローラの設定をいじらずに、EXCELはEXCELで表示するように できないのでしょうか? HTMLのように、target="_blank"みたいにしたいのですが・・・ Java初心者なので、よくわかっていないかもしれませんが、 宜しくお願い致します。

みんなの回答

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

最初に書いておきますがJavaは関係ないです。 >response.setHeader("Content-Disposition","inline; filename=\"" + file + "\""); ここでinlineを指定しているのでブラウザ内に表示されます。inlineではなくattachmentを指定してみてください。 あとはsetContentTypeでapplication/vnd.ms-excelを指定してみて下さい。

k_tanpin
質問者

お礼

Bonjin様 回答ありがとうございました。 無事解決致しました。 wiondow.openで別ウインドウを作成し、openerで値を取得し、 そのウインドウからservletを呼び出したらうまくいきました。 今回は、誠にありがとうございました。

k_tanpin
質問者

補足

Bonjin様 回答ありがとうございます。 しかし、attachmentにしますとファイルのダウンロードダイアログが 2度表示されてしまいます。 それと、ContenetTypeで種類の指定ですが、EXCEL以外でもあるので それは出来ないのです。 説明不足で申し訳ありません。 なにか他の方法は無いものでしょうか?

関連するQ&A