php图像没有显示

时间:2010-03-02 18:28:16

标签: php image

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

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

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

当我运行这个php文件时,这个show logo.jpg 但是当我从

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

它没有显示图像

实际上我想跟踪这张图片。

由于

5 个答案:

答案 0 :(得分:4)

如果你想使用这样的东西:

然后temp.php应该是:

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

这是因为浏览器希望src标记的<img>属性指向的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 ... ?>标记之前或之后绝对不应有空白字符:唯一的输出必须是图像的内容。

答案 1 :(得分:3)

要使这项工作正常,您需要在temp.php中阅读并输出实际的图片数据(前面有header('Content-type: image/jpeg');

包含图片代码的HTML文件不能用作其他图片代码的src

答案 2 :(得分:2)

而不是PHP脚本输出额外的img标记,您需要让它读取二进制图像数据并输出该标记以及相应的Content-Type标题。

temp.php应该是这样的:

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

答案 3 :(得分:2)

好吧,PHP脚本返回HTML输出,而不是图像。如果您希望temp.php文件返回可在图像元素中使用的图像,则需要使用PHP-GD创建图像,将图像导入/复制到图像,然后以JPEG格式输出图像并使用正确的图像头。

答案 4 :(得分:0)

只是我还是...... 如果代码确实是你所拥有的

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

应该是

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

没有开场白?