gpt4 book ai didi

php - mySQL blob 图像打印输出?

转载 作者:行者123 更新时间:2023-11-29 04:53:52 25 4
gpt4 key购买 nike

我知道之前有人问过这个问题,我知道您可以通过为每张图片制作一个单独的页面来做到这一点。但这不是我想要的理想选择。

我想做一件古老的事情,即在同一页面上显示来自数据库的多张图片:

echo "<table>";
echo "<tr class ='tablehead'><td>Name</td><td>Location</td><td>Review</td><td>Image</td><td>Thumb</td></tr>";

while ($row = mysql_fetch_array($query))
{
echo "<tr>";
echo "<td>" . $row['user_fname'] . "</td>";
echo "<td>" . $row['user_location'] . "</td>";
echo "<td>" . $row['user_review'] . "</td>";
echo "<td>" . $row['user_image'] . "</td>";
echo "<td>" . $row['user_thumb'] . "</td>";
echo "</tr>";
}

echo "</table>";

user_imageuser_thumb 是 blob 图像,有没有办法在该页面上显示它们,也许将它们设置为 php 变量,然后转换为 javascript 或其他东西那些线?而不是:

  header('Content-type: image/jpg');
echo $thumb;

在单独的文件中?

最佳答案

这里基本上有两个问题:

  1. 由于$thumb包含图像的二进制数据,除非您告诉浏览器它是什么数据,否则浏览器不会理解它(例如image/jpg).

  2. 您需要告诉浏览器数据在哪里。

假设您要创建一个在该页面中显示缩略图的图像:

<td><img src="..." alt="thumb"></td>

src 属性告诉浏览器在哪里可以找到图像的数据。所以它用于解决问题 2。它需要一个统一资源定位符 (URI)。

那么如何将 $thumb 放入 URI 中呢?有多种方法可以做到这一点,包括一种 linked in a comment。 .

但是,如果图像不是很大并且您不需要专门缓存它(例如,应该缓存 HTML,但不缓存缩略图),您可以使用 data: URI Scheme­Wikipedia :

$thumbSrc = 'data:image/jpg;base64,'.base64_encode($thumb);

然后您可以将该变量输出为 src 属性的值:

<td><img src="<?php echo $thumbSrc; ?>" alt="thumb"></td>   

希望对您有所帮助。

完整答案:

echo "<table>";
echo "<tr class ='tablehead'><td>Name</td><td>Location</td><td>Review</td><td>Image</td><td>Thumb</td></tr>";
while ($row = mysql_fetch_array($query))
{
echo "<tr>";
echo "<td>" . $row['user_fname'] . "</td>";
echo "<td>" . $row['user_location'] . "</td>";
echo "<td>" . $row['user_review'] . "</td>";
echo '<td><img src="data:image/jpg;base64,', base64_encode($row['user_thumb']), '" alt='thumb'></td>';
echo '<td><img src="data:image/jpg;base64,', base64_encode($row['user_image']), '" alt='image'></td>';
echo "</tr>";
}
echo "</table>";

关于php - mySQL blob 图像打印输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8645578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com