当我尝试在一个单独的部门中回显它时,从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>
提前感谢您的帮助!
答案 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" />