使用readfile / file_get_contents不显示图像

时间:2009-11-10 06:34:02

标签: php header types file-get-contents

if(preg_match('/^[a-zA-Z0-9]+\.(gif|jpe?g)$/',$row['filename'],$matches) &&
    is_readable($row['filepath'].$row['filename'])){    
  echo header('Content-Type: image/'.$matches[1]);    
  echo header('Content-Length: '.filesize($row['filepath'].$row['filename']));    
  echo file_get_contents($row['filepath'].$row['filename']);
} else {
  echo 'cant serve image: '.$row['filename'];
}

当我尝试放置header('Content-Type': image/jpeg)时,它只显示一个空白页面和当前网址。

我正在尝试显示图片以替换我的<img>标签。

filepath包含图像目录的物理路径。

2 个答案:

答案 0 :(得分:1)

不确定它是否会解决整个问题,但您不应在header函数的返回值上使用echo:要发送标题,只需使用header函数,不要回应任何事情:

header('Content-Type: image/'.$matches[1]);

无效图片(即,Firefox显示其网址而非其内容)通常是由图片日期之前/之后的无效输出引起的 - 请确保您没有任何内容发送到浏览器而不是图像本身。

答案 1 :(得分:0)

您不需要echo header,只需header