如何在 mysql 数据库中存储 php imagejpg() 结果

How to store php imagejpg() result in mysql database

我已经使用以下代码调整了从用户那里收到的图像的大小:

$imagedata = getimagesize($_FILES['uploadedimage']['tmp_name']);
            $newwidth = $imagedata['0']/3;
            $newheight = $imagedata['1']/3; 
            $thumb = imagecreatetruecolor($newwidth, $newheight);
            $source = imagecreatefromjpeg($_FILES['uploadedimage']['tmp_name']);
            // Resize
            imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $imagedata['0'], $imagedata['1']);

            // Output and free memory
            ob_start();
            imagejpeg( $thumb );
            echo '<img src="data:image/jpeg;base64,' . base64_encode(ob_get_clean()) . '">';
            imagedestroy($thumb);

现在我正在使用这条线路

echo '<img src="data:image/jpeg;base64,' . base64_encode(ob_get_clean()) . '">';

显示图像,但我想将其存储在我的数据库中。 我无法弄清楚。我在许多论坛中搜索过,但没有找到任何答案。 请帮忙。

您不应该存储图像,您可以做的是将图像存储在已知路径中,然后将唯一 ID 或名称存储在数据库中,以便检索您在数据库中查找 ID 和重新构建路径。

我已经通过在写回声的地方添加这行代码来解决这个问题:

$image = addslashes(ob_get_contents());

现在$image可以通过query正常发送到DB了。

除非真的非常需要,否则不要存储 blob。

你愿意每天备份吗...

  • 一个 100MB 的数据库和 50GB 的文件(不同的,使用 rsync)
  • 或 50GB SQL 数据库?