PHP Imagepng输出不会显示在浏览器中


PHP Imagepng output does not shown in the browser

我花了最后一晚的时间来解决这个问题。

我有一个php文件,它应该返回一个带有相关标题的PNG图像。相关文件内容基本为。(没有先前的输出或标头语句前的空白)

header('Content-Type: image/png');
$img = @imagecreatefrompng($path);
imagepng($img);
imagedestroy($img);

但是浏览器(Firefox)说图像有错误,因此无法显示。

如果我把文件保存到另一个地方,并用FTP下载,它就会显示出来。类似:

imagepng($img, "/tmp/hedede.png");

如果我删除header语句并打印出文件内容,它将显示PNG标头和所有其他垃圾数据。如果我在浏览器上将此页面保存为PNG文件,浏览器将不会再次显示保存的PNG文件,但Irfanview会显示它。

请检查您的文件(在路径中)MIME类型,不要通过扩展名信任文件类型。希望能有所帮助。如果您的文件不是png图像,则代码无法正常运行,也不会显示给定的图像。

这是GD库版本问题。

imagepng($resource)

工作旧版本GD Libray。新版本将是:

imagepng($resource,"php://output")