gpt4 book ai didi

php - 将 base64_encode 图像从数据库恢复到文件系统

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:44 26 4
gpt4 key购买 nike

我正在使用 base64_encode 将我的一些图像保存到 mysql 数据库中。现在我想将它们恢复回文件系统。

我该怎么做?

编辑...!

好吧,我解释得还不够。

我使用此代码对图像进行编码并将它们保存到 blob 表中:

function base64_encode_image ($imagefile) {
$imgtype = array('jpg', 'gif', 'png');
$filename = file_exists($imagefile) ? htmlentities($imagefile) : die('Image file name does not exist');
$filetype = pathinfo($filename, PATHINFO_EXTENSION);
if (in_array($filetype, $imgtype)){
$imgbinary = fread(fopen($filename, "r"), filesize($filename));
} else {
die ('Invalid image type, jpg, gif, and png is only allowed');
}
return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary);
}

并使用此代码在浏览器中显示我的图像:

if (!isset($_GET['id']) && !ctype_digit($_GET['id'])){
die('Error');
} else {
require_once( addslashes(dirname(dirname(__FILE__)) . '/config.php') );
require_once( addslashes(dirname(__FILE__) . '/Functions.php'));
$row = mysql_fetch_array(mysql_query ("SELECT `id`,`cover_small` FROM `om_manga` WHERE `Active` = '1' AND `id` = '".sql_quote($_GET['id'])."'"));
if (isset($row['id'])){
header("Content-type: image/jpeg");
readfile($row['cover_small']);
} else {
die('Error');
}
}

现在我希望它们恢复为 jpg 文件。

所有这些图像的大小都小于 3kb。

最佳答案

使用 PHP 的 base64_decode()将编码数据转换回二进制的函数。

由于 base64_decode 返回一个字符串,您可以使用 file_put_contents()将解码后的内容写入文件。

这让我想知道为什么要存储 base64 编码的图像,如果您不以该格式使用它的话。您可以轻松地将二进制格式的图像存储在二进制 blob 列中。

Base64 编码增加了 33% 的字符开销(不是字节)。

编辑修改后的问题

第二个问题的答案是主观的,没有上下文。在不知道你的系统细节的情况下,我不能建议你是否应该提取图像。

关于php - 将 base64_encode 图像从数据库恢复到文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9741068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com