私は現在、クライアント用のWebアプリケーションを構築しています。そして、私はオリジナルのIE8でxlsxファイルをダウンロードすることができません。IE9のIE8互換モードで動作しますが。
私はsymfony1.4、php5.2.6を使用しています。xslxファイルは有効です。
私のコード:
$this->getResponse()->clearHttpHeaders();
$this->getResponse()->setHttpHeader('Pragma: public');
$this->getResponse()->setContentType('application/force-download');
$this->getResponse()->setHttpHeader('Content-Disposition', 'attachment; filename="Export_Excel.xlsx"');
$this->getResponse()->setHttpHeader('Content-Transfer-Encoding', 'binary');
$this->getResponse()->setHttpHeader('Connection', 'close');
$this->getResponse()->setContent($fileData);
$this->getResponse()->sendHttpHeaders();
$this->getResponse()->send();
IE 8は、Webサイトが見つからないか応答しないため、ダウンロードできず、後で試すと言っています。同じURLで空白のページを表示できるため、これはURLの問題ではありません。
さらに、このコード
session_write_close();
$this->getResponse()->clearHttpHeaders();
$this->getResponse()->setHttpHeader('Pragma: public');
$this->getResponse()->setContentType('application/force-download');
$this->getResponse()->setHttpHeader('Content-Disposition', 'attachment; filename="Export_Excel.xlsx"');
$this->getResponse()->setHttpHeader('Content-Transfer-Encoding', 'binary');
$this->getResponse()->setHttpHeader('Connection', 'close');
@ob_end_clean();
flush();
@readfile(sfConfig::get('sf_web_dir').'/'.$filename.'.xlsx');
throw new sfStopException();
次に、xslxファイルがzipファイルとしてダウンロードされます。session_write_close();に注意してください。上記のコードはそれなしでは機能しなかったからです。
何か案は ?
ファイルをxslxファイルとしてダウンロードできるようにしたいと思います。(名前を変更する必要はありません)。コードの最初の束は、chrome、firefox、IE 9、IE9 compat IE 8、IE9compatIE7で動作します。しかし、IE8ではありません。
更新2:
したがって、問題は実際にはダウンロード部分にあります。上司から、xlsxをcsvに一時的に置き換えるように言われましたが、ファイルをダウンロードするのとまったく同じ問題があります。
では、ファイルのダウンロードをIE8で機能させるためのアイデアはありますか?