Excelファイルを生成してHTTPSでダウンロードするときの注意

ExcelファイルをPHPで生成するには、PEARのSpreadsheet_Excel_Writerを使うと簡単にできます。生成したPHPファイルをダウンロードするには、

header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=test.xls");

でヘッダを出力してから、Excelファイルの本体をシフトJISに変換してecho()なんかで出力すればいいのですが、httpsでSSLを使うとダウンロードできなくなります。ファイルの保存ダイアログも表示してきません。

いろいろ調べると、IEの問題らしい。やはり、先人の知恵がありました。以下のように続けてヘッダを出力してあげれば解決です。

header("Cache-Control: public");
header("Pragma: public");

このページは xfy Blog Editor?を利用して作成されました。