PHP Imagepng输出未在浏览器中显示

时间:2012-03-23 09:00:57

标签: php gd

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

我有一个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会显示该文件。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

这是GD库版本问题。

imagepng($resource)

...工作旧版GD库。新版本将是:

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