PHP Imagepng 输出未在任何浏览器中显示
Posted
技术标签:
【中文标题】PHP Imagepng 输出未在任何浏览器中显示【英文标题】:PHP Imagepng output does not shown in any browser 【发布时间】:2015-01-13 13:32:22 【问题描述】:我有这个 php 脚本,它应该在浏览器中返回一个 png 图像。
header('Content-Type: image/png');
$img=imagecreatefrompng($myimagepath);
imagepng($img);
imagedestroy($img);
但我的任何浏览器(Firefox、IE 或 Google)都无法显示结果
我想知道如何解决这个问题? 我使用 Wampserver 2.4
谢谢
【问题讨论】:
header(...)
之前的输出中不应有任何内容。为避免,请在第一个 header(...)
之前使用 ob_clean()
【参考方案1】:
脚本本身似乎没问题。我看到两个可能的问题:
$myimagepath
已损坏或无法访问
PNG 支持 未启用。用phpinfo()
查看,应该在gd
下。
【讨论】:
双重检查脚本并对其进行测试。工作正常。在我的机器上启用了 PNG 支持。我们将不得不等待 OP 检查他的服务器或图像路径。 我检查了 phpinfo() 和 gd 运行良好。我有 2.4.10 版本。 如何检查文件是否损坏? @OnésiphoreKonanKouamé 和PNG Support
在gd
下?
@OnésiphoreKonanKouamé 所以,检查图像路径。硬编码$myimagepath
并在其中放置一个类似google.com/images/srpr/logo11w.png 的URL。静止图像不显示?【参考方案2】:
我认为以下内容应该适合您:
header('Content-Type: image/png');
readfile($myimagepath);
这不依赖于安装gd
。
如果这确实有效,则 gd
有问题。
如果这不起作用,则图片有问题。
【讨论】:
我在我的 ftp 文件夹中上传了 google 徽标并现在对其进行测试,我的浏览器会随机显示一个无法读取的符号,例如“PNG IHDRR^�.U IDATx���k�%�u&�� ż�nu�Q-�R�dK,��nYc 那是您的浏览器将 png 文件解释为text/html
。确保header('Content-Type: image/png')
前面没有斜线。
我现在有一张小图片
我将 $myimagepath 更改为真实图像,现在我有一个像图像一样的小矩形,当我打开浏览器中显示的页面的源代码时。我有这个代码 localhost:8080/myfirstapp"> 正常吗@Marcel
是的,这就是您的图像的样子。也许在某些时候你用gd
弄乱了图像,现在它看起来不再像你期望的那样了。【参考方案3】:
您的代码看起来不错,但可能有错误。
替换
header('Content-Type: image/png');
与
error_reporting(E_ALL);
// header('Content-Type: image/png');
用于故障排除和在浏览器中刷新页面。
也许有任何错误信息?
【讨论】:
恰恰相反...评论此行将阻止图像显示 是的。浏览器将像文本一样显示页面内容。也许有错误? @NadavS。我们知道这一点,但如果出现错误,图像将损坏并且浏览器无法显示。所以我们想要默认的内容类型,即 text/html 来查看错误。我对此答案有待编辑,以使 Pavel 想说的更清楚。 @MarcelBurkhard 你是对的。但这不是最终解决方案。 当我评论 header('content-type: image/png') 时,除了使用 header('content-type: image/png') 和 imagepng($img,"我的图像.png");我的 ftp 文件夹中有相同的图像。以上是关于PHP Imagepng 输出未在任何浏览器中显示的主要内容,如果未能解决你的问题,请参考以下文章
PHP 输出图像 imagegif imagejpeg 与 imagepng 函数