从Apache切换到Nginx:PHPExcel不再有效

时间:2014-09-22 13:10:14

标签: apache nginx phpexcel

我在Apache 2.2上,在我的应用程序的某个地方,我使用PHPExcel生成Excel文档。 工作正常

我切换到Nginx /php5-fpm,然后生成的文件无法读取。我尝试删除nginx vhost / conf下的所有优化。

Apache Response Headers(可读的excel文件):

Cache-Control:no-cache
Connection:close
Content-Disposition:attachment; filename="Export-3339-Lettre d'actualité clients.xls"
Content-Type:application/vnd.ms-excel
Date:Mon, 22 Sep 2014 12:24:35 GMT
Server:Apache/2.2.26 (Unix) DAV/2 PHP/5.5.16 mod_ssl/2.2.26 OpenSSL/0.9.8y
X-Powered-By:PHP/5.5.16

Nginx响应标头(凌乱的文件):

Cache-Control:no-cache
Connection:keep-alive
Content-Disposition:attachment; filename="Export-3339-Lettre d'actualité clients.xls"
Content-Type:application/vnd.ms-excel
Date:Mon, 22 Sep 2014 12:22:02 GMT
Server:nginx
Transfer-Encoding:chunked
X-Powered-By:PHP/5.5.9-1ubuntu4.4

该文件如下所示: enter image description here

*编辑**关闭chunked_transfer_encoding后,这里是响应标题,但仍然没有生成有效文档。

Cache-Control:no-cache
Connection:close
Content-Disposition:attachment; filename="Export-3339-Lettre d'actualit%C3%A9 clients.xls"
Content-Type:application/vnd.ms-excel
Date:Wed, 24 Sep 2014 09:53:34 GMT
Server:nginx
X-Powered-By:PHP/5.5.9-1ubuntu4.4

1 个答案:

答案 0 :(得分:0)

找到解决方案,它是生成和返回响应的方式。

file_get_content()而不是readfile()修复了它。