[英]how to Display Multiple Images (blob) from mysql using php?
我正在尝试使用PHP和MySql数据库显示多个图像,即使使用while
循环,我也无法获得所有图像,我只能得到一个图像,我的意思是表中的第一个图像。 有什么问题 ?
我正在使用表ID_IMAGE (int, pk, auto increment)
和myImage (blob)
$query = mysql_query("SELECT myImage FROM image");
while($data=mysql_fetch_array($query)) {
header('Content-type: image/jpg');
echo $data['myImage'];
}
解决此问题的一种可能方法是使用单独的脚本来动态输出图像内容,例如。 :
image.php
header('Content-type: image/jpg');
// DataBase query and processing here...
echo $data['myImage'];
并在需要显示存储在数据库中的图像时调用它,例如。 在循环内:
echo '<img src="image.php?id=' . $data['id'] . '">';
但是将图像存储在数据库中会给服务器造成巨大的损失 ,除非它们真的很小或者您有充分的理由这样做,否则您应该只将它们的物理位置存储在磁盘上。
如果希望对用户隐藏图像位置或控制访问,也可以使用这种方法,但是在这种情况下,有更好,更快的替代方法。
仅提及通过编码将图像直接嵌入html的可能性,您可以使用以下方法:
$query = "SELECT myImage FROM image";
if ($result = mysqli_query($link, $query)) {
while ($row = mysqli_fetch_assoc($result)) {
echo '<img src="data:image/jpg;base64,' . base64_encode($row['myImage']) . '">';
}
}
优点:
缺点:
有关基本编码图像的更多信息:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.