thinkphp 导出 excel 在正式环境中遇到的“net::err_invalid_response”错误

在进行 thinkphp excel 导出操作时,不少开发者发现本地导出没有问题,但在正式环境下却报错“net::err_invalid_response”。针对这一问题,我们对代码逐行分析,最终找到了解决方案。

具体错误原因

导出 excel 的最后一段代码中,使用了 $objwriter->save('php://output') 输出文件。在正式环境中,这个问题是由于 php 版本过高导致的。php 5.6 及以上的版本将 php://output 的行为更改了,导致导出失败。

立即学习“PHP免费学习笔记(深入)”;

解决方案

针对这个问题,需要修改导出文件的输出方式。将 $objwriter->save('php://output') 修改为 $objwriter->save('export.xls'),其中 export.xls 是要导出的文件名。

修改后的代码

// 设置活动单指数到第一个表,所以Excel打开这是第一个表
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename="$fileName"");
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('export.xls'); // 文件保存为 export.xls
登录后复制

以上就是ThinkPHP导出Excel报错“net::ERR_INVALID_RESPONSE”怎么办?的详细内容,更多请关注慧达安全导航其它相关文章!

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部