HTTP ヘッダが原因で IE 8 でファイルを開けない/ダウンロードできない場合
サーバサイドプログラムから PDF ファイルを出力するとき、 Internet Explorer 8 ではファイルを開けない場合がある。
Accept-Ranges が原因の場合
調べてみるとレスポンスヘッダに Content-Length を指定し Accept-Ranges を指定していない場合、PDF ファイルを開こうとすると真っ白なウィンドウが開いてしまう。
対処法は簡単。Content-Length ヘッダを出力する際は同時に Accept-Ranges も出力しましょう。
Accept-Ranges: bytes Content-Length: 123456
SSL 経由の場合
コンテンツが https: から始まる SSL 経由の URL で、コンテキストメニューから「対象をファイルに保存」を選ぶと「ファイルをキャッシュに書き込めませんでした」というメッセージが表示されてファイルを保存できない場合がある。
これは SSL 使用時に Internet Explorer が Cache-Control: no-store または Cache-Control: no-cache となっているヘッダを処理できないバグによるもの。
次のヘッダを出力することで解決する。
Cache-Control: public Pragma: public