我目前正在为客户构建一个 Web 应用程序。而且我无法使用原始 IE8 下载 xlsx 文件。而它适用于 IE9 的 IE8 兼容模式。
我正在使用 symfony 1.4,php 5.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 说不能下载,因为他没有找到该网站或没有响应,稍后再试。这不是 url 问题,因为我可以显示具有相同 ulr 的空白页面。
此外,这段代码
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、IE9 compat IE7。但不是IE8。
更新 2:
所以问题确实出在下载部分。我的老板告诉我用 csv 临时替换 xlsx,我在下载文件时遇到了同样的问题。
那么有什么想法可以使文件下载适用于 IE8 吗?