tau*_*ino 34 php csv internet-explorer download
我正在努力解决一个奇怪的错误.我有一个简单的Web应用程序,从数据库中抓取东西,然后将其输出为可下载的csv文件.它适用于firefox和chrome,但IE无法将其识别为csv文件(认为它是一个html文件),当我点击保存时,我收到错误,"无法从{site of site}下载{name of file} .无法打开这个网站...."
码:
session_start();
//some logic goes here...
//generate csv header
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=exportevent.csv");
header("Pragma: no-cache");
header("Expires: 0");
echo "Event: " . $event_title . "\n";
//print the column names
echo "Last Name, First Name, Company \n";
while($row = mysql_fetch_assoc($result))
{
echo $row['atlname'] . ',' . $row['atfname'] . ',' . $row['atcompany'] . "\n";
}
Run Code Online (Sandbox Code Playgroud)
我已经玩了很多内容类型,但这没有任何效果.
更新:我已经尝试过text/csv,application/vnd.ms-excel(及其变体),text/plain以及其他一些我现在忘记运气的东西.
这是IE8顺便说一句.
更新2:连接通过SSL.
小智 56
我们不爱IE吗?:)
尝试使用这些标题:
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"exportevent.csv\";" );
header("Content-Transfer-Encoding: binary");
Run Code Online (Sandbox Code Playgroud)
我认为八位字节流内容类型强制IE下载文件.
我们最近遇到了这个问题.请参阅此MSKB文章
这些是我们最终必须使用它来使其在SSL上工作的标头.
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$file_name\";");
header("Content-length: " . strlen($csv_string));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41416 次 |
| 最近记录: |