'在div中使用php回显图像失败了

时间:2012-04-17 00:40:24

标签: php mysql

当我尝试在一个单独的部门中回显它时,从MySQL服务器中选择一个jpg图像后,当我使用它时,它会出现乱七八糟的ascii字符:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="image/jpeg; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>

<div id = "myDiv">
<h2>Div</h2>
<?php
  require_once('appvars.php');
  require_once('connectvars.php');
  $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  $id = 1;
  $query = "SELECT image FROM images WHERE id=?";
  $stmt = $dbc->prepare($query);
  $stmt->bind_param("i",$id);
  $stmt->execute();
  $stmt->store_result();
  $stmt->bind_result($image);
  $stmt->fetch();
  echo $image;
 ?>
</div>
</body>
</html>

提前感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

呃......那么......你发送的是HTML还是图像?你不能发送两个!

(嗯,您可以通过data:网址,但旧版IE不太支持

从表面上看,您使用HTML的唯一原因是设置内容类型标头。在这种情况下,您只需要PHP:

header("Content-Type: image/jpeg");

如果您确实希望将图像嵌入HTML中,请尝试:

echo "<img src=\"data:image/jpeg;base64,".base64_encode($image)."\" />";

答案 1 :(得分:0)

浏览器无法理解它在您回显的“div”中的图像。您必须将此PHP脚本分开并使用<div><img src="/path/to/script.php"></div>。这会告诉浏览器内容是图像。

答案 2 :(得分:0)

你在这里安静了很多。首先,您有一个包含错误内容描述符的HTML文档。其次,您不能将原始图像数据发送到HTML文档。 - 您之前需要对其进行base64编码。

答案 3 :(得分:0)

首先,我不能说我建议您将图像或其他大型二进制文件存储在数据库中 - 您最好将它们存储在文件系统中并将其存储在数据库中

其次,你不能只是将图像数据脱口而出到页面中间。您需要使用HTML <img>标记。正如Kolink上面所说,你可以将图像嵌入到HTML中,但我不建议这样做,因为它意味着它永远不会被缓存。让服务器在不同的URL上提供图像,并使用<img src="path/to/image" alt="Alternate text here" />

将其嵌入到页面中