気まぐれSE日記

地方でエンジニアしてます

またIE8だけ動作が変⇒なぜかダウンロードできない


PHPでとあるファイルをダウンロードさせる処理を検証して居るんですが、またもIE8だけ妙な挙動をしてくれやがるです。


protocolは httpとhttpsで試して居るんだけど、

  • httpの場合は、ファイルのダウンロードダイアログは表示されて、保存をクリックすると瞬時に閉じてなぜかダウンロードが完了しない。
  • httpsの場合は上記の続き、保存をクリックするとエラーメッセージで「ファイルをキャッシュに書き込めませんでした」と表示される。


この症状は、IE6、IE7firefoxだと発生しないんだよね。


なんだこりゃ。


どうやらIE8だと、Content-Disposition:ヘッダにattachmentと書いてあるとダメのようだ


header(Content-Disposition: attachment; filename=なまえ.csv");


回避策としてattachmentを削るとうまくいくんだけど、インラインで開いちゃうし...。IE6とかでも似たようなふざけた症状あったのにIE8で復活してるっていったい。→IE6の頃はダウンロードのダイアログが2回開くって言う症状がありましたけど、今回のはダウンロード自体完了しないので違うかな〜。


header(Content-Disposition: filename=なまえ.csv");


追記1: これで治るかもしんない



追記2:
SSL通信の時でエラーになる場合は、SSL証明書の警告*1が表示されていると発現することまではわかってます。


追記3:
インターネットオプション⇒セキュリティ⇒レベルのカスタマイズ⇒その他⇒拡張子ではなく、内容によってファイルを開くを無効を試してみると良いかもしれません。

*1:証明書が信頼されてない等の状態でIE8のアドレスバーが赤く表示されている状態