リクエストのいくつかのパラメーターに基づいて、応答に対してオンザフライで PDF を作成するサーブレットがあります。このファイルを IE で開いたりダウンロードしようとすると、次のメッセージが表示されます。
「[サイト] から [ファイル名] をダウンロードできません。このインターネット サイトを開くことができません。要求されたサイトは利用できないか、見つかりません。後でもう一度試してください。」
これは私が応答に設定したものです:
response.setHeader("Content-Disposition", "attachment;filename=" + title + ".pdf");
response.setContentType("application/pdf");
他のブラウザではすべて正常に動作しています。
アップデート:
添付ファイルの代わりにインラインで試しました。これにより、開く/保存ダイアログの代わりに新しいウィンドウが開きます (ダイアログが必要です)。エラー メッセージは表示されなくなりますが、新しいウィンドウは IE では空です。まだ他のブラウザで動作しています。
エスケープされていない文字を含まない、ファイル名の周りに単純な二重引用符なしを試しました。二重引用符と引用符なしでは違いはありませんが、ファイル名に単一引用符が追加されます。もちろん、これは望ましくありません。
ファイル名にエスケープされていない文字が含まれていません。
このページのテストを確認しました。ファイル名付きの引用符なしの添付ファイルがすべてのブラウザーに渡されることが示されています。これは最初から使われていたものです。
Content-Length ヘッダーを追加しても違いはありません。
ちなみに、フライングソーサーはPDFの作成に使用されています。