标头(内容类型:image/jpeg)不起作用


header(Content-type: image/jpeg) not working

我已经编写了一些调整图像大小的代码(遵循PHP手册),但我无法显示图像。当我回显$thumb时,我知道图像数据是存在的,但我似乎无法显示实际的图像。

这是我使用过的代码:

$row = mysql_fetch_array($result);
$image = $row["image"];
echo $image;
echo $row["name"];
list($width, $height) = getimagesize($image);
$newwidth = $width * 0.1;
$newheight = $height * 0.1;
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($image);
imagecopyresized($thumb, $source, 0,0,0,0, $newwidth, $newheight, $width, $height);
header('Content-Length: '.strlen($thumb), true);
header("Content-type: image/jpeg");
echo imagejpeg($thumb);

感谢您的帮助

  1. $thumb删除't
  2. 您不能在jpeg文件中打印字符串。因此删除echo $image;echo $row["name"];
  3. 您可以将此代码放在另一个文件中,并将其用作图像

index.php:
$row = mysql_fetch_array($result);
$image = $row["image"];
echo $image;
echo $row["name"];
echo '<img src="image.php">';

image.php:


    $row = mysql_fetch_array($result);
    $image = $row["image"];
    list($width, $height) = getimagesize($image);
    $newwidth = $width * 0.1;
    $newheight = $height * 0.1;
    $thumb = imagecreatetruecolor($newwidth, $newheight);
    $source = imagecreatefromjpeg($image);
    imagecopyresized($thumb, $source, 0,0,0,0, $newwidth, $newheight, $width, $height);
    $h = str_replace(''t','',$thumb);
    header('Content-Length: '.strlen($h), true);
    header("Content-type: image/jpeg");
    imagejpeg($thumb);