显示在 SQL Server 中存储为 blob 的图像

我有一个查询来获取信息图像:

$q4 = "SELECT TOP 3 b.BadgeName, b.BadgeImage FROM BadgeImageTable AS b
INNER JOIN employee_badge AS e
ON e.badge_id = b.BadgeID
WHERE e.employee_id = 2164
ORDER BY e.earned_on DESC ";

$stmt3=sqlsrv_query($conn,$q4);
if($stmt3==false){
  echo 'error to retrieve info !! <br/>';
  die(print_r(sqlsrv_errors(),TRUE));
}

HTML 上一个:

<!-- 
<span class="fa-stack fa-5x has-badge" >
  <div class="badgesize">
    <img src="images/1.png"  alt=""   >
  </div>
</span> 
-->

现在在上面的 HTML 中,我试图回显图像:

<span class="fa-stack fa-5x has-badge" >

                    <div class="badgesize">

                <img src="

                <?php

                                if($count = sqlsrv_num_rows($stmt3) > 0){
                                  while($recentBadge = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC)){
                                    $result[] = $recentBadge;
                                  }

                                  if($count > 3){
                                    $result = array_rand($result, 3);
                                  }

                                  foreach($result as $recentBadge){
                                    echo
                                      $recentBadge['BadgeName'],
                                      '<img src="data:image/png;base64,'.base64_encode($recentBadge['BadgeImage']).'"/>',
                                      '<br>'
                                    ;
                                  }
                                } else {
                                  echo 'no results';
                                }

              ?>

                            "  alt=""  >


                            </div>


        </span>


</div>
</span>

BadgeImage、BadgeID 和 BadgeName 是“BadgeImageTable”中的列名,我试图从这里回显。

当我在我的数据库中使用查询时,它会根据需要获取数据。PLZ,见下文。在此处输入图片说明

问题:我无法在 html 中回显上述 BadgeImage。

我使用以下查询存储了图像:

Insert Into BadgeImageTable(BadgeID, BadgeImage)
Select '77', BulkColumn 
from Openrowset (Bulk 'C:\Users\mrashidjne\Desktop\diligent.png', Single_Blob) as Image

目前这是我尝试回显图像时看到的: 111

Xorifelse

关于这个问题,我唯一能找到的是你应该以二进制形式获取图像:

while(sqlsrv_fetch($stmt3)){
  $result[] = [
    'name' => sqlsrv_get_field($stmt3, 0),
    'img'  => sqlsrv_get_field($stmt3, 1, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_BINARY))
  ];
}

有了这个,您应该能够显示图像:

function blob2image($mime, $blob){ 
  ob_start(); 
  header("Content-type:$mime"); 
  echo $blob; 
  return ob_get_contents(); 
} 

$mime = 'image/png';
foreach($result as $row){
    echo $row['name'];
    echo '<img src="data:'.$mime.';base64,'.base64_encode(blob2image($mime, $row['img'])).'"/>';
}

我不能肯定地说这行得通,因为我没有能力进行测试,而且我也找不到关于这个主题的很多信息。


另一种方法是将图像存储为:

  1. Base64 编码的文本
  2. 存储图片的路径

无论BadgeImagetext编码图像还是varchar要存储路径,这两种方法都需要将列数据类型更改为

$file = 'C:\Users\mrashidjne\Desktop\diligent.png';
#$file = 'images/1.png'; // or store path relative to webroot and echo image as normally.
$mime = mime_content_type($fn);
$img  = base64_encode(file_get_contents($fn));
$src  = "$data:$mime;base64,$img"

$sql = "INSERT INTO BadgeImageTable (BadgeName, BadgeImage) VALUES ('diligent', '$src')";

现在在打印时,它应该像以下一样简单:

echo '<img src="'.$row['BadgeImage'].'"/>';

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL Server 2008中存储图像Blob数据?

来自分类Dev

如何在SSRS中显示来自Dynamics的BLOB图像(在SQL Server 2016上运行)

来自分类Dev

SQL Server 2008 R2:使用存储为BLOB(图像数据类型)的XML

来自分类Dev

PHP-存储为BLOB的图像显示为断开的链接

来自分类Dev

PHP-存储为BLOB的图像显示为断开的链接

来自分类Dev

将图像存储为Blob并显示在html上

来自分类Dev

在SQL Server中存储图像

来自分类Dev

显示所有存储为MySQL数据库中BLOB数据的图像

来自分类Dev

PHP将图像显示为BLOB mysqli

来自分类Dev

以symfony显示存储在BLOB数据库中的图像

来自分类Dev

在Swift中显示来自SQLite Blob的图像

来自分类Dev

在 React Native (Expo) 中显示 blob 图像

来自分类Dev

使用Rest Services,Java和Angular JS将存储在Mysql数据库中的图像显示为Blob

来自分类Dev

使用Rest Services,Java和Angular JS将存储在Mysql数据库中的图像显示为Blob

来自分类Dev

如何在SQL Server中存储图像

来自分类Dev

显示来自SQL Server的图像列表

来自分类Dev

将图像存储为文件系统中的Blob

来自分类Dev

在PHP中显示数据库中的Blob图像

来自分类Dev

在jsp中显示blob图像(javax.servlet.ServletException:java.sql.SQLException:找不到列“ 2”。)

来自分类Dev

BLOB图像无法完全显示

来自分类Dev

在使用 Gloogle Apps Script Blob 创建的 pdf 中显示图像

来自分类Dev

Yii2显示存储在BLOB数据库字段中的图像

来自分类Dev

如何使用php在mysql中显示以blob数据类型存储的图像?

来自分类Dev

显示存储在SQL数据库中的图像

来自分类Dev

使用C#将存储在Azure Blob存储中的图像下载为图像

来自分类Dev

如何从数据库中获取 BLOB 并将其显示为图像

来自分类Dev

如何在SQL Server数据库中存储图像

来自分类Dev

在SQL Server数据库中存储图像

来自分类Dev

如何在 Aspose Word 文档中显示 SQL Server 数据库图像 base64

Related 相关文章

  1. 1

    如何在SQL Server 2008中存储图像Blob数据?

  2. 2

    如何在SSRS中显示来自Dynamics的BLOB图像(在SQL Server 2016上运行)

  3. 3

    SQL Server 2008 R2:使用存储为BLOB(图像数据类型)的XML

  4. 4

    PHP-存储为BLOB的图像显示为断开的链接

  5. 5

    PHP-存储为BLOB的图像显示为断开的链接

  6. 6

    将图像存储为Blob并显示在html上

  7. 7

    在SQL Server中存储图像

  8. 8

    显示所有存储为MySQL数据库中BLOB数据的图像

  9. 9

    PHP将图像显示为BLOB mysqli

  10. 10

    以symfony显示存储在BLOB数据库中的图像

  11. 11

    在Swift中显示来自SQLite Blob的图像

  12. 12

    在 React Native (Expo) 中显示 blob 图像

  13. 13

    使用Rest Services,Java和Angular JS将存储在Mysql数据库中的图像显示为Blob

  14. 14

    使用Rest Services,Java和Angular JS将存储在Mysql数据库中的图像显示为Blob

  15. 15

    如何在SQL Server中存储图像

  16. 16

    显示来自SQL Server的图像列表

  17. 17

    将图像存储为文件系统中的Blob

  18. 18

    在PHP中显示数据库中的Blob图像

  19. 19

    在jsp中显示blob图像(javax.servlet.ServletException:java.sql.SQLException:找不到列“ 2”。)

  20. 20

    BLOB图像无法完全显示

  21. 21

    在使用 Gloogle Apps Script Blob 创建的 pdf 中显示图像

  22. 22

    Yii2显示存储在BLOB数据库字段中的图像

  23. 23

    如何使用php在mysql中显示以blob数据类型存储的图像?

  24. 24

    显示存储在SQL数据库中的图像

  25. 25

    使用C#将存储在Azure Blob存储中的图像下载为图像

  26. 26

    如何从数据库中获取 BLOB 并将其显示为图像

  27. 27

    如何在SQL Server数据库中存储图像

  28. 28

    在SQL Server数据库中存储图像

  29. 29

    如何在 Aspose Word 文档中显示 SQL Server 数据库图像 base64

热门标签

归档