以数据库base64格式存储的图像如何在PHP中以原始格式检索它

时间:2018-02-12 09:55:46

标签: php html mysql

我已经将数据以base64格式存储在数据库中(存储格式:数据:image / jpeg; base64,/ 9j / 4AAQSkZJR )现在我想要使用PHP从数据库返回图像,我使用了所有方法,但没有用。

我目前的方法是

enter image description here

2 个答案:

答案 0 :(得分:0)

你需要做的是从db读取base64并用它来创建一个图像文件,这是一个从base64创建jpeg图像的函数

function base64_to_jpeg($base64, $jpeg) {

    $fp = fopen($jpeg, 'wb'); 
    $data = explode(',', $base64);
    fwrite($fp, base64_decode($data[1]));
    fclose( $fp ); 

    return $jpeg; 
}

并且该函数将返回jpeg文件对象

答案 1 :(得分:0)

可能此解决方案适合您:

How to decode a base64 string (gif) into image in PHP / HTML

引用该来源但修改: 如果你去掉第一个案例并选择解码字符串,你应该在回复解码的图像数据之前添加它:

header("Content-type: image/gif");
$data = "/9j/4AAQSkZJRgABAQEAYABgAAD........";
echo base64_decode($data);

在第二种情况下,请改用:

echo '<img src="data:image/gif;base64,' . $data . '" />';

第二种情况很糟糕,因为如果在多个页面上显示相同的图像,浏览器不会执行缓存。