php - 从 SQL 数据库中检索 varbinary 图像

标签 php mysql sql image mysqli

我创建了一个非常简单的 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/

相关文章:

mysql - SQL:使用同一个表的结果更新多行

java - 如何写入已运行的 java 程序的输入流?

mysql快速选择查询而不读取所有数据库

php - mysql如何存储多个空格?

php - 从 PHP 添加到数据库插入 NULL

mysql - 阻止 MySQL 连接影响结果集

php - sql 查询是否免受 googlebots 攻击(google sql 注入(inject))

java - PHP - 使用 Exec 执行带有用户定义参数的 Jar 文件

PHP,删除已知字符串的更好选择是什么?

javascript - 将文件从 localStorage 发布到 PHP $_FILES