php - 从数据库检索时图像损坏

标签 php mysql base64

代码:

$db = mysqli_connect("localhost","root","","photos");

if(isset($_POST['POST'])){

$image = addslashes($_FILES['image']['tmp_name']);
$image_name = addslashes($_FILES['image']['name']);
$image = file_get_contents($image);
$image = base64_encode($image);


$sql = "INSERT INTO imaag ( name ) VALUES ('$image')";
mysqli_query($db,$sql);
}
$res = mysqli_query($db,"SELECT * from imaag");

我在其中获取图像的 div 是:

<div>
    <?php 
    while ($row = mysqli_fetch_array($res)) {

    echo '<img 
 src="data:image/jpeg;base64,"'.base64_encode($row['name']).'/>';
    }?>
</div>

检索时图像已损坏,我不知道图像是否已上传。我认为它没有上传。上传部分出现问题。

最佳答案

因为在检索时您不需要再次base64_encode。只需添加字符串即可。更改您的 echo 如下:

 echo '<img 
 src="data:image/jpeg;base64,'.$row['name'].'"/>';
    }?>

关于php - 从数据库检索时图像损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49422735/

相关文章:

php - 无法获取要发布的 php mysqli while 语句

PHP IMAP 格式

PHP websocket自动断开连接

c++ - sqlConnection->Open() 不起作用

c# - 使用 C# 无法连接到 MySQL 服务器,但使用 Workbench 没有问题

android - 在 Android 中解码 JSON base64 数据(来自 PHP 的 base64_encode)?

c++ - 将 base64 解码后的字符串转换为 unsigned char[32]

php - 防止从详细信息页面进行sql注入(inject)

javascript - 如何从保存的 base64 图像中裁剪未使用的 Canvas 空间?

mysql - 有人可以解释为什么当我只期望 1 条记录时,这个查询有时会返回零行,而有时会返回多行