xlsx文件无法在IE中下载但在Firefox中正常工作 我的代码是
$objPHPExcel->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment;filename='Monthly-Report-$month-$year'");
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
//$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
exit;
错误消息在IE中显示为 Internet Explorer无法下载xlsx.php(这是我编写代码的php文件) Internet Explorer无法打开此站点
答案 0 :(得分:3)
是的,如果您使用HTTPS,那么Internet Explorer就会出现问题。在处理文件下载时,您需要从响应中删除Pragma标头。
下载前请输入以下代码:
header("Pragma: ");
只有当您使用安全的http运行时才会出现这种情况,如果情况并非如此,请告诉我们。
你可以在我的博客文章中找到更多描述,当我在https上遇到同样的问题时,我错了,而IE浏览器上的http工作非常完美。
我希望这会有所帮助。
答案 1 :(得分:-1)
使用application/vnd.ms-excel
代替application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
以实现向后兼容。
如果您有权修改Web服务器的mime设置,
你需要添加
AddType application/vnd.openxmlformats .docx .pptx .xlsx
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx
对你的,例如,apache conf。
之后,请将您的文件名改为Monthly-Report-$month-$year.xlsx
。