我创建了一个非常简单的 PHP 和 SQL 博客。我在数据库中有以下字段:post_title、post_content、post_category、post_date、post_image、user_name。 post_image 字段是 VARBINARY(255)。我可以在数据库中成功上传文件,但之后如何检索并显示它?下面是显示博客的代码。我想在 h2 标签上方显示图片:
<?php
while($column = mysqli_fetch_assoc($post)){
?>
<h2 class="post-title"><?php echo $column["post_title"]?></h2>
<div class="view-post-content"><?php echo $column["post_content"]?></div>
<p class="category">Category: <?php echo $column["post_category"]?></p>
<p>This post was written <?php echo $column["post_date"]?> by <?php echo $column["user_name"]?>.</p>
<a href="edit_post.php?id=<?php echo $column['post_id'] ?>">Edit</a> | <a href="delete_post.php?id=<?php echo $column['post_id'] ?>" onclick="return confirm('Are you sure?')">Delete</a>
<hr>
<?php
}
?>
最佳答案
两种方式:
1- 创建另一个 php 只加载 varbinary:
例如load_img.php:
<?php
...
if(isset($_REQUEST['id'])) {
$sql = "SELECT post_mime, post_image FROM post WHERE post_id=" . $_GET['id'];
$result = mysqli_query("$sql");
$row = mysqli_fetch_array($result);
header("Content-type: " . $row["mime"]);
echo $row["img"];
}
mysql_close($conn);
在你的 H2 之上:
echo '<img src="load_img.php?id='.$column['post_id'].'" />';
2- 或使用 base64 css:
echo '<img src="data:image/jpeg;base64,'.base64_encode( $column['post_image'] ).'"/>';
我会推荐一个新字段来存储mimetype(jpg、png、gif 等...)
关于php - 从 SQL 数据库中检索 varbinary 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46751253/