【发布时间】:2013-12-20 22:04:14
【问题描述】:
我昨晚花了我的时间来解决这个问题。
我有一个 php 文件,它应该返回一个带有相关标题的 PNG 图像。相关文件内容基本是。 (标题语句之前没有先前的输出或空格)
header('Content-Type: image/png');
$img = @imagecreatefrompng($path);
imagepng($img);
imagedestroy($img);
但是浏览器(Firefox)说图像有错误,因此无法显示。
如果我将文件保存到另一个地方并使用 FTP 下载它,它就会显示出来。喜欢:
imagepng($img, "/tmp/hedede.png");
如果我删除标题语句并打印出文件内容,它会显示 PNG 标题以及所有其他垃圾数据。如果我在浏览器上将此页面保存为 PNG 文件,浏览器再次不会显示保存的 PNG 文件,但 Irfanview 会显示它。
【问题讨论】:
-
从 imagecreatefrompng 中删除“@”,您可能会在此处丢失错误。
-
是的,您可能会收到类似这样的通知:'abc' 不是有效的 PNG 文件
-
我删除了“@”字符。但是即使
error_reporting设置为(E_ALL),我仍然没有收到任何错误。我还确定输入文件是有效的 PNG,如果我使用浏览器直接调用该文件,我可以显示它。