如何在 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 数据库?
我已经使用以下代码调整了从用户那里收到的图像的大小:
$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 数据库?