私たちは、お客様のためにPDF文書を生成し、サーブレットで提供しています。 次のコードは、Firefox、Chrome、Operaでは動作しますが、IEのバージョンでは動作しません。ポップアップウィンドウはIEでのみ点滅しますが、何も起こりません。しかし、IEのアドレスバーからサーブレットに直接リクエストすることで、ファイルのダウンロードダイアログを表示することができます。 我々は、いくつかのcontenttypesの(アプリケーション/ダウンロード、アプリケーション/ X-ダウンロードなど)IEがGWT Window.open()でPDFファイルのダウンロードダイアログを表示しないのはなぜですか?
クライアント側コードを試みた:
String URL = "/files/pdf?pdfId=" + getPdfId();
Window.open(URL, "_blank", "");
サーブレットバイト[]としてPDFサービング:
byte[] bytes = getFileAsByteArray();
BufferedInputStream in = new BufferedInputStream(new ByteArrayInputStream(bytes));
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
response.setHeader("Content-Disposition", "attachment; filename=document.pdf");
response.setContentType("application/octet-stream");
response.setContentLength(bytes.length);
byte[] buffer = new byte[8192];
for (int length = 0; (length = in.read(buffer)) > 0;) {
out.write(buffer, 0, length);
}
out.flush();
out.close();
を
これについてのご意見はありますか?
これはうまくいきますが、ダウンロードダイアログを開く代わりにブラウザウィンドウ内にpdfを表示します。私は特に、そのダウンロードダイアログを開く方法を見つけることを試みています。 – Kimi
私は適切な解決策を見つけることができないので、これを回避策として受け入れるつもりです。 – Kimi