2008年3月7日金曜日

IE6でダウンロードするファイルのファイル名が指定できない問題の回避方法

PHPでzipファイルを保存時のファイル名を指定して出力ようとしたが、IE6だけ保存時のファイル名が指定したものにならなかった。(FirefoxとIE7は思い通りになった。)

調べてみるとそれらしいのが見つかった。
Internet Explorer 6 でダウンロード ダイアログに正しいファイル名が表示されない

確かにApacheでgzipにしている。圧縮されていて分からないから他のファイル名を付けてしまうのか。
できればgzipするかどうかをContent-Typeで判断させたいが、それらしいのが見つからないのでSetEnvIfで該当のPHPをgzの対象外にした。


それでもまだうまくいかないので調べてみると、もう一つそれらしいのが見つかった。
Content-Disposition: attachemnt と Cache-Control: no-cache によるダウンロードの問題

該当ページはSESSIONを使っているのでデフォルトCache-Controlがno-cacheになっている。
適当な値でCache-Controlを指定したら正しいファイル名で出力できるようになった。

0 件のコメント:

ブログ アーカイブ

tags