- 締切済み
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初心者なので、よくわかっていないかもしれませんが、 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Bonjin
- ベストアンサー率43% (418/971)
最初に書いておきますがJavaは関係ないです。 >response.setHeader("Content-Disposition","inline; filename=\"" + file + "\""); ここでinlineを指定しているのでブラウザ内に表示されます。inlineではなくattachmentを指定してみてください。 あとはsetContentTypeでapplication/vnd.ms-excelを指定してみて下さい。
お礼
Bonjin様 回答ありがとうございました。 無事解決致しました。 wiondow.openで別ウインドウを作成し、openerで値を取得し、 そのウインドウからservletを呼び出したらうまくいきました。 今回は、誠にありがとうございました。
補足
Bonjin様 回答ありがとうございます。 しかし、attachmentにしますとファイルのダウンロードダイアログが 2度表示されてしまいます。 それと、ContenetTypeで種類の指定ですが、EXCEL以外でもあるので それは出来ないのです。 説明不足で申し訳ありません。 なにか他の方法は無いものでしょうか?