PHP スクリプトが CSV ファイルを生成しています。
ダウンロード リンクをクリックすると、ブラウザがそれを添付ファイルとして扱い、ダウンロード プロンプトを表示するようにします。
これは Firefox では正しく機能しますが、Internet Explorer 8 では CSV ファイルがテキストとして表示されるだけです。
これは、ヘッダーを生成する PHP コードです。
return new Response( $vOutput, 201, array
(
'Content-Encoding' => 'UTF-8',
'Content-Type' => 'application/octet-stream; charset=UTF-8',
'Content-Transfer-Encoding' => 'binary',
'Content-Disposition' => 'attachement; filename="entrance_stats_line' . $vLine . '.csv"',
'Pragma' => '',
'Cache-Control' => '',
'Content-Length' => strlen( $vOutput ),
'Expires' => '0'
)
);
(使用されているフレームワークは Silex であり、Symfony の Symfony\Component\HttpFoundation\Response クラスに依存していますが、関連性があるかどうかはわかりません)
Firefox が (改ざんデータを使用して) 受信した HTTP ヘッダーは次のとおりです。
Status=Created - 201
Date=Wed, 30 Jan 2013 15:53:38 GMT
Server=Apache/2.2.21 (Win32) PHP/5.3.10
X-Powered-By=PHP/5.3.10
Content-Encoding=UTF-8
content-transfer-encoding=binary
Content-Disposition=attachement;filename="entrance_stats_line1.csv";
Cache-Control=no-cache
Content-Length=6141
Connection=close
Content-Type=application/octet-stream; charset=UTF-8
ヘッダーが IE で変更されているかどうかは確認していませんが、Fiddler が機能するようになったら投稿します。
以前に、次のようなヘッダーの他の組み合わせをいくつか試しました。
Status=Created - 201
Date=Wed, 30 Jan 2013 16:34:46 GMT
Server=Apache/2.2.21 (Win32) PHP/5.3.10
X-Powered-By=PHP/5.3.10
Content-Encoding=UTF-8
Content-Disposition=attachement; filename=entrance_stats_line1.csv
Cache-Control=no-cache
Connection=close
Content-Type=text/csv; charset=UTF-8
これにより、「要求されたサイトが見つかりませんでした」というエラーが表示されます。
IE のバージョンは 8.0.6001.18702 です。