CSVファイルのダウンロードを作成し、通常のHTTPでのダウンロードは成功しますが、IEで、HTTPS(SSL)での接続の場合、IEだと次のような「ダウンロードできません」というメッセージが表示されます。
---------------------------
Windows Internet Explorer
---------------------------
Internet Explorer では、xxxxxxxxxxxxxx をダウンロードできません。このインターネットのサイトを開くことができませんでした。要求されたサイトが使用できないか、見つけることができません。後でやり直してください。
この現象は、まったく理解できませんでしたが、SSL環境下で、IEという条件でのみ発生します。SSL+Firefoxだと発生しません。
以下のブログが参考になりました。
http://blog.gnetworks.co.jp/nk2/?p=54(開発日誌)
マイクロソフトのサポートページで解説されています。、
http://support.microsoft.com/kb/436605/ja
サポートページによると、IE5,IE6で確認とされていますが、IE7でも同様に発生します。
no-cache指定されていると発生するようです。
なんとなく意味がわかりました。IEだとページ閲覧もダウンロードもすべてtemporary Internet filesフォルダへいったん保存されます。保存されたデータは、no-cache指定されていると、即削除されるため、ダウンロードの場合の、
ダウンロード→temporary→指定フォルダ
この流れが実現できないためかと思われます。ダウンロード→temporaryこの時点で削除されてしまうため。
PHPで、これを回避するには、cacheするように設定することで対応可能です。
header("Cache-Control: public");
header("Pragma: public");

コメントする