作者: | 来源:互联网 | 2023-09-08 11:38
我有这个包含图像作为字符串的数据库.这些字符串看起来像这样:data:imagejpeg;base64,9j4AAQSkZJRgABAQEAYABgAAD我需要创建一个显示此
我有这个包含图像作为字符串的数据库.这些字符串看起来像这样:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD...
我需要创建一个显示此图像的链接.像somethings.?id=27是一个图像.所有图像都是jpeg格式.这是我尝试但没有奏效的内容:
$host = "smth";
$user = "smth";
$pass = "smth";
$db_name = "smth";
$dbh = new PDO("mysql:host=$host;dbname=$db_name", $user, $pass);
$dbh->exec("SET NAMES utf8");
$q = $dbh->prepare("select content from img where id = :id");
$q->execute(array(':id'=>$_GET['id']));
$row = $q->fetch(PDO::FETCH_BOTH);
header("Content-type: image/jpeg");
echo $row['content'];
?>
正确获取数据但不显示图像.
我需要能够像这样使用这个链接我不想要这个解决方案:
谢谢!
解决方法:
您的问题的解决方案在这里:
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 '';
第二种情况是不好的,因为如果在多个页面上显示相同的图像,浏览器不会执行缓存.