gpt4 book ai didi

php - 如何处理图像 blob 列 mySQL PHP

转载 作者:行者123 更新时间:2023-11-28 23:21:12 25 4
gpt4 key购买 nike

我有一个 SQL 表 imgTbl其中一列的类型为 MEDIUMBLOB .我用以下内容填充了该列:

LOAD_FILE(“E:/wamp64/tmp/test.jpg”));

问题:我想在 PHP 中使用这个图像。我读到我必须 <?php echo base64_encode(...); ?>图像数据,但是当我还有其他列时,如何挑出该列进行编码呢?我的 php 查询如下:

  $query = "SELECT * FROM imgTbl";
$result = mysqli_query($conn, $query);
if (!$result) {
die("Database query failed.");
}
$rows = array();
while($subject = mysqli_fetch_assoc($result)) {
// If $rows["image"] then encode??
$rows[] = $subject;
}
echo $json_response = json_encode($rows);

echo 然后传递给 javascript,因此是最终的 JSON 格式。

最佳答案

回答你的问题:

在 MYSQL 数据库中存储图像与存储任何其他类型的文件没有什么不同。存储图像时,还需要使用 mime_content_type() 存储内容类型.这将允许您在从数据库中检索图像时正确地重建图像。

您不能简单地将图像的二进制数据回显到页面,因为在那种形式下,它没有任何意义。

当网页显示图像时,是因为您的浏览器向服务器发送了 GET 请求,服务器返回的内容带有图像 mime 类型

您可以轻松地在 <image> 中使用 URI标记指向原始二进制数据,如下所示:

<img src="data:<?php echo $imageMimeType; ?> ; base64, <?php echo $binaryImage; ?>">

请注意,在上面的标记中,指定了 mime 类型。

一些建议:

  • 开始使用 PDO
  • 您当前的 mysqli 查询将返回整个表中的所有 图像和所有 其他关联字段。我认为您可能打算使用 where条款。
  • 在数据库中存储图像很麻烦,而且通常文件不适合数据库。尽管图像可能很小,但文件系统通常是存储它们的最佳选择。您可以轻松设置文件夹结构来存储图像并使用数据库来存储它们的路径。

关于php - 如何处理图像 blob 列 mySQL PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41526263/

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