我在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
该文件如下所示:
*编辑**关闭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
答案 0 :(得分:0)
找到解决方案,它是生成和返回响应的方式。
file_get_content()
而不是readfile()
修复了它。