我正在使用此代码
$query = mysql_query("SELECT Image, Col2, Col3 FROM table ");
$row = mysql_fetch_array($query);
$content = $row['Image'];
header('Content-type: image/jpg');
echo $content;
echo $row['Col2'];
echo $row['Col3'];
问题是,一旦我'Content-type: image/jpg'
,其他Col2和Col3就不会出现。它们不是图像,只是文本行。如何同时显示图像和文字?
答案 0 :(得分:5)
在将标题内容类型设置为image / jpg时,浏览器只需要图像二进制数据。使用此内容类型回显文本将破坏图像二进制文件而不显示文本。
如果不更改标题,您可以将图像编码为图像标记:
echo '<img src="data:image/jpg;base64,' . base64_encode($content) . '" />';
echo $row['Col2'];
echo $row['Col3'];
答案 1 :(得分:2)
你本身不能......
您正在发送内容类型的图像数据,这意味着您发送的所有数据都被解释为形成图像的数据字节。
您可以看到数据的唯一方法是使用header()函数发送对浏览器无用的abitrary数据。然后使用您使用的firebug或wathever浏览器控制台,查找NETWORK选项卡并打开图像请求并检查标题选项卡,您将在那里看到您的数据,但您无法向用户显示该数据。
header('mydata2: '.$row['Col2']);
header('mydata3: '.$row['Col3']);
header('Content-type: image/jpg');
echo $content;
另一个奇怪的方法是使用GD在图像上打印文本,但这可能不是你想要的。