【问题标题】:Base64 clipping images from database PHPBase64 从数据库 PHP 中剪裁图像
【发布时间】:2019-10-12 02:26:48
【问题描述】:

我正在制作一个网站,该网站显示来自 MySQL 工作台中制作的数据库中的游戏。我想让图像出现在所述游戏的相关游戏标题旁边。我遇到的问题是我使用 BLOB 将这些图像插入到我的数据库中,并将它们转换为 PHP 中的 base64。当我这样做并运行它时,图像会被剪掉。

这会从我在 MySQL 中创建的表中获取信息

function find_all_games(){
    global $db; //Connects to database
    $sql = 'SELECT * FROM game';
    $result = mysqli_query($db, $sql);
    return $result;
}

这是从数据库中提取我想要的信息并将 blob 转换为 base64 图像的表,但图像似乎被剪裁了。

'<?php while($game = mysqli_fetch_assoc($get_all_games)) {?>
<table>
    <tr>
      <td><?php
                echo '<img src="data:image/jpeg;base64,'.base64_encode($game['image']).' "height="301" width="220" />'; ?>
      </td>
    </tr>
    <tr>
      <td id="title"><?php echo $game['title']; ?></td>
    </tr>
    <tr>
      <td class="title">Released:</td>
      <td class="data"><?php echo $game['release_date']; ?></td>
    </tr>
    <tr>
      <td class="title">Publisher:</td>
      <td class="data"><?php echo $game['publisher']; ?></td>
    </tr>
</table>

'

图像应该看起来不错,但底部有一个白色剪辑,每个图像都会发生变化,即使它们的像素大小都相同。

Evidence that the images display, but are clipped

【问题讨论】:

  • Blob 数据类型的最大大小为 64K。图像通常比这大,因此将数据类型更改为 mediumblob (16mb)
  • 哦,天哪,我删除了它,因为我之前尝试过使用它但它不起作用,但现在又添加了它,它运行良好。非常感谢你,杰夫。你是绝对的救星!!

标签: php html mysql base64 clipping


【解决方案1】:

对于和我有同样问题的人: 感谢 Jeff (https://stackoverflow.com/users/2417483/jeff),我只是在傻,结果我需要做的就是根据图像的文件大小将其设为 MEDIUMBLOB 或 LONGBLOB。

【讨论】:

    猜你喜欢
    • 2016-08-27
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 2016-02-17
    • 2011-01-01
    相关资源
    最近更新 更多