以下是我目前用于显示数据库中图像的编码:
$con = mysqli_connect('localhost','root','','demo') or die('Unable To connect');
$query = mysqli_query($con,"SELECT * FROM images");
while($row=mysqli_fetch_assoc($query))
{
echo '<img src="data:image/png;base64,' . base64_encode($row['image']) . '" />';
}
编码问题:它只显示 .png 扩展名的图片,因为我使用echo '<img src="data:image/png;base64,' . base64_encode($row['image']) . '" />';
来显示它。
我想做的事情:我想要展示展开式.jpeg
.png
和.gif
的图片。
有没有人可以用其他简单的图像显示方式帮助我?谢谢。
答案 0 :(得分:2)
将格式存储在数据库中:
$con = mysqli_connect('localhost','root','','demo') or die('Unable To connect');
$query = mysqli_query($con,"SELECT * FROM images");
while($row=mysqli_fetch_assoc($query))
{
echo '<img src="data:image/' . $row['format'] . ';base64,' . base64_encode($row['image']) . '" />';
}
答案 1 :(得分:2)
您好,只需获取image
extension
并使用
$ext = pathinfo($row['image'], PATHINFO_EXTENSION);
echo '<img src="data:image/' . $ext . ';base64,' . base64_encode($row['image']) . '" />';
答案 2 :(得分:2)
@FrankerZ已经提供了正确的解决方案,但如果您已经在数据库中存储了base64图像,那么添加格式列将会有问题。
你可以像这样从base64发现mime类型的图像;
$img = $row['image']; // base64 of your image
$fileInfo = finfo_open(); // file info resource
$mimeType = finfo_buffer($fileInfo, $img, FILEINFO_MIME_TYPE);
如果您已有记录,不会在每次迭代中应用此方法。只需在数据库中添加新列,然后使用此方法填充/更新这些新列。之后,使用@FrankerZ的解决方案。