php图片不显示

air*_*air 0 php image

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

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

     ////////////////////
     ?>
     <img src=images/logo.jpg" />
Run Code Online (Sandbox Code Playgroud)

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

       <img src="../temp.php?key=123" width="438" height="100" />
Run Code Online (Sandbox Code Playgroud)

它没有显示图像

实际上我想跟踪这个图像。

谢谢

Pas*_*TIN 5

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

那么temp.php实际上应该:

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

这是因为浏览器期望标签的src属性所指向的 URL<img>实际上对应于一个有效的图像——而不是一些 HTML 文本。


例如,temp.php可以包含这样的内容:

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


作为一些旁注:

  • 您必须发送正确的Content-typeHTTP 标头;这意味着您必须知道您的图像是 gif、jpeg、png 还是...
  • 您必须检查是否$_GET['key']正确,以免发送不需要的文件的内容!
  • <?php ... ?>标签前后绝对不能有空白字符:唯一的输出必须是图像的内容。