-3

从 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

4 回答 4

2

呃……那么……你是在发送 HTML 还是图像?你不能同时发送!

(嗯,你可以通过data:URL,但在旧版 IE 上不太支持)

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

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

如果您真的想将图像嵌入 HTML,请尝试:

echo "<img src=\"data:image/jpeg;base64,".base64_encode($image)."\" />";
于 2012-04-17T00:43:31.077 回答
0

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

于 2012-04-17T00:43:03.717 回答
0

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

于 2012-04-17T00:45:33.513 回答
0

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

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

于 2012-04-17T00:47:24.170 回答