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包含图像目录的物理路径。
答案 0 :(得分:1)
不确定它是否会解决整个问题,但您不应在header
函数的返回值上使用echo
:要发送标题,只需使用header
函数,不要回应任何事情:
header('Content-Type: image/'.$matches[1]);
无效图片(即,Firefox显示其网址而非其内容)通常是由图片日期之前/之后的无效输出引起的 - 请确保您没有任何内容发送到浏览器而不是图像本身。
答案 1 :(得分:0)
您不需要echo header
,只需header
。