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

Php BinaryFileResponse在Firefox中无法正常工作-图像损坏或被截断,php,apache,symfony,firefox,symfony-http-foundation,Php,Apache,Symfony,Firefox,Symfony Http Foundation,当Firefox试图加载PHP生成的图像文件时,我遇到了一些奇怪的问题。 在Mac和Windows(7、8、10)上发生 Firefox控制台显示: 图像损坏或被截断 在Chrome、Safari和IE/Edge中,一切都很好 但这并不是一个固定的错误,有时相同的图像在Firefox中完全或至少部分加载 Apache直接提供的静态图像也可以正常工作 服务器端代码非常基本,如下所示: $response = new BinaryFileResponse($file->getPathname(

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

Firefox控制台显示:

图像损坏或被截断

在Chrome、Safari和IE/Edge中,一切都很好

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

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

服务器端代码非常基本,如下所示:

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

return $response;
以下是静态(工作)映像的原始响应标头:

下面是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个网站上使用了相同的脚本,没有任何问题。所以这可能是服务器端的问题?

在我的例子中,原因是Firefox中安装了AdBlock Plus插件;)

在我的例子中,原因是Firefox中安装了AdBlock Plus插件;)

尝试将内容长度添加到标题。我尝试使用
$response->headers->set('content-length',filesize($file->getPathname())但响应标题没有更改。我还注意到Firefox和Chrome都接收传输编码:chunked,而Safari接收“Identity”。尝试向标题添加内容长度。我尝试了
$response->headers->set('content-length',filesize($file->getPathname())但响应标题没有更改。我还注意到Firefox和Chrome都接受传输编码:chunked,而Safari接受“Identity”。我不再为那家公司工作了,但据我记忆所及,正是这样;)不确定我是否找到了解决方案。我不再为那家公司工作,但据我记忆所及,正是这样;)不知道我是否找到了解决办法。
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