我正在使用PHPExcel创建一个基于数据库记录的Excel文件,并且在大型数据集上生成它时面临一个奇怪的问题。我把它缩小到一个引起问题的路线:
$objWriter->save('php://output');
它只是吐出一个空白文件而不是预期的工作簿。此外,如果我尝试将结果保存到本地文件而不是重定向到浏览器,则效果类似 - 不会创建任何文件。
踢球者认为它适用于较小的数据集(较小=最多200行,较大=最多2000行,两种情况下最多20列)。它也适用于另一台(开发)服务器,它具有 EXACT SAME,100%相同,大数据集。
我确实将save()
调用包装在try-catch中,但没有引发异常。在前往memory_get_peak_usage()
之前执行save()
告诉我它正在使用24MB,并且我在脚本中有ini_set('memory_limit', '-1')
。此外,在运行脚本时监视服务器上的内存使用情况也未显示任何显着增加。
有关调试的提示吗?
编辑:apache日志中没有错误,但是我确实注意到访问日志中的相关行说:
10.1.1.1 - - [01/Jun/2011:08:35:03 -0400] "GET /get_excel.php HTTP/1.1" 200 16386
奇数部分是最后一列 - 大小。我实际下载的文件总是空的 - 正好是0位,而不是16386。