2011-07-13 9 views
1

私たちは、お客様のために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(); 

これについてのご意見はありますか?

答えて

2

このお試しください:

Content-Disposition: inline 

の代わり:

Content-Disposition: attachment;filename=document.pdf 

が見つかり何かを伝える、その後、これを試してみてくださいをインラインで使用する場合は、 filename = document.pdfを使用しないでください。これはIEでは機能しません。

はあなたがここでそれを読むことができます(他のブラウザはそれを無視する):http://indiwiz.com/2009/03/11/forcing-http-download/

+0

これはうまくいきますが、ダウンロードダイアログを開く代わりにブラウザウィンドウ内にpdfを表示します。私は特に、そのダウンロードダイアログを開く方法を見つけることを試みています。 – Kimi

+0

私は適切な解決策を見つけることができないので、これを回避策として受け入れるつもりです。 – Kimi

0

pdfプラグインの問題の可能性があります。 Link to adobe site for more details

+0

ハズレが働いています。私たちはブラウザにpdfを表示しようとしていません。目標は、ユーザーにファイルのダウンロードダイアログを表示することです。このファイルは、ブラウザプラグインに関係なくダウンロード可能である必要があります。 – Kimi

+0

あなたが投稿したコードは私のために働いているようです。 –

0

問題を解決できない場合は、問題内の何かを変更しようとしてください。 zipされたPDFファイルまたは別のコンテンツを送信してみてください。それはあなたがトラブルの根本を見つけるのを助けるはずです。すべてはzipファイルで作業する場合は、あなたは、PDFファイルを送信する必要はありません

0

試してみてください。

Window.open(GWT.getHostPageBaseURL()+URL,"",""); 

これはうまくいくかもしれません!使用して - 私:

com.google.gwt.user.client.Window.open(GWT.getHostPageBaseURL()+URL, "", ""); 

、それがうまく

+1

興味深い。ありがとうございました。私もこれを試してみます。 – Kimi

関連する問題