当前位置:博客首页>>PHP >> 阅读正文

php输出xml(导出excel)数据过长时被截断

作者: 郑晓 分类: PHP 发布于: 2016-02-04 13:53 浏览(3,571) 评论(6)


在使用xml来导出excel时,发现小数量(1k以下)时能正常导出excel,但将导出数量调大(几K)时,发现导出的excel数据不全。
(在我本地是好的,在线上服务器跑就有问题。。。)
检查导出的xml数据,发现内容被截断了,有时连xml标签都不全。

php-xml-excel
首先怀疑是输出的内容字节过长,超出了环境配置的上限。检查了output_buffering和nginx的fastcgi_buffer相关设置,都没有问题。和我本地的值一样,修改后也没有影响。
之后就Google了下,发现有出现类似情况的,是权限问题,于是去检查nginx的错误日志error.log。
发现在导出操作时有如下错误记录:

2016/02/04 09:47:53 [crit] 19027#0: *967389 mkdir() "/tmp/fastcgi_temp/xxx" failed (13: Permission denied) while reading upstream, client:xxx.xxx.xx.xxx

看来确实是权限有问题,导出时nginx要创建一个/tmp/fastcgi_temp/xxx的目录,但失败了。
跑去/tmp下检查,发现根本没有fastcgi_temp目录!!于是手动新建目录/tmp/fastcgi_temp/,并设置所有者www、权限744。
重新运行导出,xml被截断的问题已解决。

       

本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。

本文永久链接: https://www.zh30.com/php-xml-excel-truncated.html

php输出xml(导出excel)数据过长时被截断:目前有6 条留言

用户评论头像 万物阁发表于 2016年05月02日 12:56[回复]

我来试试,申请友链

用户评论头像 themebetter发表于 2016年03月17日 09:32[回复]

技术性的文章总是那么受欢迎,支持博主!

用户评论头像 好书网发表于 2016年03月08日 14:49[回复]

强烈来支持、赞一个

用户评论头像 益群网发表于 2016年02月29日 14:54[回复]

看一看来瞧一瞧,这个博客真是好!

用户评论头像 Yusure发表于 2016年02月10日 20:32[回复]

解决问题还是要从日志开始定位问题