在处理上传到我的网站的图像时,我看到了一些随机错误,其中某些 .png 文件会导致错误回显到输出缓冲区,这会破坏返回服务器的响应。
错误是:
“使用 png_read_image 时应打开隔行处理”
在某些情况下,我在手动处理上传的文件时看到过这种情况,现在我也开始在我的 WordPress 安装上看到这种情况。我没有将这个问题标记为 WordPress,因为我怀疑它与 WordPress 有任何关系,而它一定是 PHP 中的某个问题。
我最初在 PHP 5 中看到了这个问题,但自从升级到 PHP 7 后我也看到了这个问题。我现在运行的是 PHP 7.1.9。
到目前为止,谷歌搜索还没有返回任何有意义的结果,似乎没有任何特定于 PHP 的答案,大多数答案都说用户需要在上传之前在源文件上启用隔行扫描,从 Web 服务器的角度来看,这是不可接受的因为我无法控制用户上传的内容。上传后图像似乎仍然可以正常工作,我只需要一种方法来抑制此消息,这样就不会导致向用户显示错误。
错误消息确实提到了 using png_read_image(),但是我没有在任何地方直接调用这个函数。也许它在内部某个地方调用它,但这使得调试非常困难。我能想到的最好的办法是它与 或imagepng()相关imagecreatefrompng()。
现在我正在前端解决这个问题,在尝试解析响应之前我会删除错误文本。
如果这有点缺乏细节,我很抱歉,但我真的不知道现在还能提供什么。