显示不同扩展名的图像(PHP)

时间:2016-08-02 06:55:09

标签: php image mysqli

以下是我目前用于显示数据库中图像的编码:

$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的图片。

有没有人可以用其他简单的图像显示方式帮助我?谢谢。

3 个答案:

答案 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的解决方案。