PHPでCSVファイルのダウンロード(SSL+IE)

| コメント(0)

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");

コメントする

このブログ記事について

このページは、utが2009年1月 6日 20:00に書いたブログ記事です。

ひとつ前のブログ記事は「リッチテキスト形式のメール(TNEF)をPHPで解読」です。

次のブログ記事は「LinuxのProxy設定」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 5.01

にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村