【问题标题】:Can't get php to output an image无法让 php 输出图像
【发布时间】:2021-07-03 09:34:05
【问题描述】:

我希望我的 PHP 输出一个简单的图像,但是当我这样做时,它给了我一个白色方块,所以我认为找不到 IMG,但是当我放置一个简单的 HTML IMG 标签时,可以找到代码非常简单的。另外,如果我尝试从互联网上获取图像,它也将无法正常工作。

<!--testing if image can be found-->
<!--<img src="img.jpeg">-->
<?php

header("Content-type: image/jpeg");
readfile("img.jpeg");
exit(0);
?>

【问题讨论】:

标签: php html image


【解决方案1】:

基本上这里发生的事情是您在输出图像之前输出了一些HTML cmets,这意味着您的图像文件无效,因此您的互联网浏览器不知道要显示什么并默认为您所看到的(a屏幕中间的白框)。

另外,当你使用header 时,你应该确保你还没有返回数据!

如果您在浏览器中查看source,您会看到类似...

<!--testing if image can be found-->
<!--<img src="img.jpeg">-->
ÿØÿàJFIFÿá‹rExifII*Àж..................................

...附加数据会持续一段时间!

如果您从 PHP 文件中删除 cmets,那么它将按预期工作;您的(整个)文件应如下所示:

<?php    
header("Content-type: image/jpeg");
readfile("img.jpeg");

注意:您可能想要添加额外的标头 RE 内容长度等,但对于大多数浏览器来说,这些并不是绝对必要的

【讨论】:

  • 我很确定@Steven 已经解决了您的问题。仅仅因为您没有在浏览器中看到 cmets,并不意味着它们没有被发送。
【解决方案2】:

要使用内容类型标题显示图像,您必须在页面上仅放置 php。如果您添加任何其他内容,它将显示一个空白方块

例如

<?php header("Content-type: image/png"); readfile("./resources/img/favicon.png"); ?>

【讨论】:

  • 是的,对不起,我回答得太快了
猜你喜欢
  • 1970-01-01
  • 2021-12-28
  • 2013-07-14
  • 2016-12-17
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 1970-01-01
相关资源
最近更新 更多