BinaryFileResponse 在 Firefox 中无法正常工作 - 图像损坏或被截断

BinaryFileResponse not working correctly in Firefox - Image corrupt or truncated

当 Firefox 尝试加载 PHP 生成的图像文件时,我遇到了一些奇怪的问题。 发生在 Mac 和 Windows(7、8、10)。

Firefox 控制台显示:

Image corrupt or truncated.

在 Chrome、Safari 和 IE/Edge 中一切正常。

但这不是一个持续的错误,有时相同的图像会在 Firefox 中完全或至少部分加载。

直接由 Apache 提供的静态图像也可以正常工作。

server-side 代码非常基础,如下所示:

$response = new BinaryFileResponse($file->getPathname());

return $response;

这是静态(工作)图像的原始响应 header:

Connection: close
Date: Thu, 20 Oct 2016 11:55:04 GMT
Etag: "1ab1567-d2e0-53f396a39fd2e"
Server: Apache
Vary: User-Agent

这是 PHP 生成的图像之一:

Accept-Ranges: bytes
Cache-Control: max-age=1209600, public, s-maxage=1209600
Connection: close
Content-Encoding: gzip
Content-Type: image/jpeg
Date: Thu, 20 Oct 2016 11:57:45 GMT
Last-Modified: Thu, 20 Oct 2016 10:12:05 GMT
Server: Apache
Transfer-Encoding: chunked
Vary: Accept-Encoding,User-Agent

有一件事要提一下,我在大约 30 个网站上使用相同的脚本没有任何问题。所以这可能是一个 server-side 问题?

就我而言,原因是在 Firefox 中安装了 AdBlock Plus 插件 ;)