【问题标题】:how get PHP script to work as img source?如何让 PHP 脚本作为 img 源工作?
【发布时间】:2019-01-12 16:29:20
【问题描述】:

我想跟踪电子邮件上的一些使用统计信息,并考虑将我使用的图像放入跟踪脚本中,然后将其添加到电子邮件中。

但是,我无法让它工作。我的代码如下:

<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8"/>
    <title></title>
</head>
<body>
<img src="test.php">
</body>
</html>

PHP代码test.php:

  <?php
 // The image to return
$image=imagecreatefrompng("images/dl-front.png");

// ** Output image to browser
header('Content-type: image/png');
imagejpeg($image);

// ** Destroys the image
imagedestroy($image);
?>

我得到了如下所示的损坏的图片链接:

【问题讨论】:

  • 如果不看看您是如何发送该电子邮件的,就很难说。 img 源应包含一个 HTTP 地址。如果它对您来说是本地的,那么外部资源将无法触发它。错误报告是否显示任何内容?
  • 我正要在这里发布答案,但我想我会在 cmets 中这么说。您在此处使用.html 文件。您是否指示您的服务器将它们视为 PHP?如果没有,它应该有一个.php 扩展名。再试一次。或者,也许我错了。您有 2 个 cmets,现在下面有一个答案,请参阅。如果我不再有问题,请回复我。
  • @FunkFortyNiner 控制台中没有错误。我先在本地环境中尝试这个。
  • 您应该首先通过直接运行 (localhost:8080/test.php) 来调试 test.php 脚本(确保它正常工作)。 然后 尝试使用 img 标签加载它。我们都可以在这里继续猜测,但在某些时候你必须自己调查。
  • “我添加了正确的标签并回显,然后图像来了” - 是什么?我之前问过错误,但你没有告诉我们上面的那个。

标签: php html image-processing


【解决方案1】:

编辑:这个答案是在 OP 的编辑 https://stackoverflow.com/revisions/51695324/1 之前给出的

我不确定,但是您正在创建一个 .png-图像,然后您将使用 header('Content-type: image/jpeg'); 将其显示为 .jpg

所以我认为如果你想显示一个 .png-图像你必须使用
header('Content-type: image/png');

【讨论】:

  • 你在哪里看到header('Content-type: image/jpeg');
  • 很公平。我编辑了你的答案,让每个人都知道。
【解决方案2】:

您可以使用以下 PHP 脚本来解决您的问题:

$image = 'images/dl-front.png';
if(!file_exists($image)){
    die("File does not exist");
}
header('Content-Type:image/png');
header('Content-Length: ' . filesize($image));
header('Content-disposition: filename="dl-front.png"');
readfile($image);

【讨论】:

  • 抱歉错字。确保图像文件存在。现在为我工作。
  • 没有兄弟。不为我工作。可以让我知道你是如何从 html 页面调用的
  • 我在PHP 脚本中添加了header('Content-disposition: filename="dl-front.png"');。它现在正在使用 HTML 标签 &lt;img src="script.php" width="100" /&gt;
  • @AhmedNumaan 两者都不是必需的
  • @WalterTross 我也是这么想的,但是如果没有这个我就不行了。
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2011-02-24
  • 2021-07-29
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
相关资源
最近更新 更多