IEでSSL時にPDFやCSVファイルをダウンロードさせる方法
SSL時にPDFやCSVファイルをダウンロードさせる方法
いろいろと困ったちゃんなIEですが、IE8より前のバージョンだとSSL時に指定したファイルをダウンロードできないバグがあります。
"〇〇をダウンロードできません。
このインターネットのサイトを開くことができません。要求されたサイトが使用できないか、見つけることができません。後でもう一度やり直してください。"
という様なエラーがポップしてくるやつです。
どうやらサーバに渡るheader情報に問題があるようです。
header ("Content-Disposition: attachment; filename=$file_name"); header ("Content-Length:$file_size"); header ("Content-type: application/x-csv;charset=Shift_JIS"); /* PDFなら header ("Content-type: application/pdf;charset=Shift_JIS"); */
これだとエラーが出ます。
header('Cache-Control: public'); header('Pragma: public'); header ("Content-Disposition: attachment; filename=$file_name"); header ("Content-Length:$file_size"); header ("Content-type: application/x-csv;charset=Shift_JIS"); /* PDFなら header ("Content-type: application/pdf;charset=Shift_JIS"); */
と、ヘッダーにpublicを指定すると動きます。
サーバ側のphp.iniの設定で自動でヘッダーにpublicを渡すように設定しても解決出来ます。
参考
PHP :: キャッシュを制御するヘッダ「session.cache_limiter」 [Tipsというかメモ]