phpexcel 网页可能暂时无法连接,或者它已永久性地移动到了新网址 ERR_INVALID_RESPONSE
2021/10/18 14:39:32
本文主要是介绍phpexcel 网页可能暂时无法连接,或者它已永久性地移动到了新网址 ERR_INVALID_RESPONSE,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最近使用phpexcel导出文件时,遇到了网页可能暂时无法连接,或者它已永久性地移动到了新网址的问题,困扰我了好久。在网上找了好多种解决方法,除了将excel版本由excel2007降低到excel5 有点用外,其他的都尝试无果。但是,将excel版本由excel2007降低到excel5又引起了其他问题,比如,导出报告中的批注不能生效,复制导出excel中的内容到另一个excel,颜色格式都发生变化等等。最终无可奈何,非要将这个问题从根本上解决才能消除大患。
思路如下:
1. 找到根本原因
使用$objWriter->save($filename); $this->display(); 这种方式查看生成excel报错的具体现象
代码如下:
$filename="test.xlsx"; ob_end_clean(); ini_set('memory_limit','-1'); set_time_limit(0); unlink($filename); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save($filename); $this->display(); // header("Pragma: public"); // header("Expires: 0"); // header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); // header("Content-Type:application/force-download"); // header("Content-Type:application/vnd.ms-execl"); // header("Content-Type:application/octet-stream"); // header("Content-Type:application/download"); // header('Content-Disposition:attachment;filename='.$filename); // header("Content-Transfer-Encoding:binary"); // ob_end_clean(); // $objWriter->save( 'php://output'); // unlink($filename); // exit;
修改后导报告的页面出现如下报错:
2. 查找出错文件
由上图可知,报错的根本原因在Rels.php的第434行,找到该文件的434行,如下所示:
找到了报错点之后,再由白图中的错误信息可以看出是Rels.php 260行通过如下参数调用了_writeRelationship方法,但参数中第4个值$pTarget为NULL,所以引出了Invalid parameters passed.这个报错
继续追踪 Rels.php 260行,如下所示,在该处调用_writeRelationship方法时通过$hyperlink->getUrl()获取到了NULL,该方法与getHyperlink有关
3.反思
1)我在系统到报告出现上述现象的情况并不是持续的,而是有些出问题,有些又没有。
2)这个报错与getHyperlink有关,而我的excel会设置日志超链接
所以我猜测是设置超链接时,没有对日志url进行判断,可能某些时候的的url是NULL,所以导致了上述问题。最终排查结果与猜想一致,解决问题。
出现“网页可能暂时无法连接,或者它已永久性地移动到了新网址”这个问题的原因可能有很多,但根据实际情况抽丝剥茧,比一直在网上尝试各种解决方法去掩盖这个问题要好太多了,继续加油吧!
这篇关于phpexcel 网页可能暂时无法连接,或者它已永久性地移动到了新网址 ERR_INVALID_RESPONSE的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享