php图像未显示

ia2d9nvy  于 2022-12-10  发布在  PHP
关注(0)|答案(6)|浏览(163)

我有以下显示公司徽标的PHP代码

<?php
     $key=$_GET['key'];
     /// key process ///

     ////////////////////
     ?>
     <img src=images/logo.jpg" />

当我运行这个php文件的时候,这个显示logo.jpg,但是当我从

<img src="../temp.php?key=123" width="438" height="100" />

它没有显示图像
实际上我想跟踪这张图像。
谢谢

brgchamk

brgchamk1#

如果你想使用类似这样的东西:
那么temp.php实际上应该:

  • 发送某些图像内容类型HTTP头
  • 并发送图像的实际内容。
  • 而不是任何HTML代码

这是因为浏览器期望<img>标记的src属性所指向的URL实际上对应于一个有效的图像--而不是一些HTML文本。
例如,temp.php可以包含类似以下的内容:

<?php
$key = $_GET['key'];
// TODO : security check on $key !!!
$file = 'images/logo-' . $key . '.jpg';
header('Content-type: image/jpeg');
readfile($file);
?>

作为一对夫妇的侧记:

  • 必须发送正确的Content-type HTTP标头;这意味着你必须知道你的图像是gif,jpeg,png,...
  • 您必须检查$_GET['key']是否正确,才不会传送不需要的档案内容!
  • <?php ... ?>标记前后绝对不能有空白字符:唯一的输出必须是图像的内容。
fkvaft9z

fkvaft9z2#

要实现这一点,在temp.php中,需要读取并输出实际的图像数据(前面加上header('Content-type: image/jpeg');
包含图像标签的HTML文件不能用作另一个图像标签的src

bxpogfeg

bxpogfeg3#

PHP脚本不需要输出额外的img标记,而是需要读取二进制图像数据并输出该数据以及相应的Content-Type头。
temp.php应该类似于:

header('Content-Type: image/jpeg');
echo file_get_contents($the_path_to_image);
hts6caw3

hts6caw34#

PHP脚本返回的是HTML输出,而不是图像。如果你想让temp.php文件返回一个可以在图像元素中使用的图像,你需要使用PHP-GD创建一个图像,导入/复制图像到其中,然后输出JPEG格式的图像,并带有适当的图像头。

w7t8yxp5

w7t8yxp55#

是我的错觉还是...如果密码真的是你的

<img src=images/logo.jpg" />

应该是

<img src = "images/logo.jpg">

它没有开头引号?

iih3973s

iih3973s6#

这是因为img标签的文件夹路径不应该以“/”开头来定位图像或图像所在的任何相关文件夹。<img src="Images/today_picks_1.jpg" alt="" > .

相关问题