为了账号安全,请及时绑定邮箱和手机立即绑定

在 img 标签中显示来自 MySQL 的 blob

在 img 标签中显示来自 MySQL 的 blob

PHP
呼如林 2021-10-22 10:58:24
我制作了一个 API,它向我发送了许多数据。其中之一是来自我的 MySQL 数据库的 blob。我可以看到 blob 编码为 base64,但我不能在 img 标签中使用它来显示我的图像。我已经看过其他人的问题了。顺便说一下,我认为 img 标签是正确的。也许是 JSON 对我的数据做了一些事情......我来自 API 的数据array (size=2)  0 =>     object(stdClass)[1]      public 'LId' => string '1' (length=1)      public 'LNom' => string 'Visual Paradigm' (length=15)      public 'IImage' => string '\/9j\/4AAQSkZJRgABAQAAAQABAAD'... (length=8455)  1 =>     object(stdClass)[2]      public 'LId' => string '2' (length=1)      public 'LNom' => string 'Visual Studio' (length=13)      public 'IImage' => string '\/9j\/4AAQSkZJRgABAQEAYABgAAD'... (length=44843)API调用:$url = "localhost/projet/api/fake/getSoftwaresFAKE.php";     $data = CallAPI('GET', $url);     $json = json_decode($data);     echo '<img src="data:image/jpeg;base64,'.($json[1]->IImage).'"/>';接口代码<?php// on se connecte à MySQL et on sélectionne la base$mysqli = new mysqli("192.168.1.23", "API", 'Pa$$w0rd', "AtoutProtectDB");if ($mysqli->connect_errno) {    echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;}// on crée la requête SQL $req = $mysqli->query('SELECT LId, LNom, IImage FROM Logiciels, Images WHERE Logiciels.IId = Images.IId'); $req->data_seek(0);while ($row = $req->fetch_assoc()) {     $data [] = ['LId' => $row['LId'],'LNom' => $row['LNom'],'IId' => base64_encode($row['IImage'])];}echo json_encode($data);?>
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

您应该检查返回的值$json[1]->IImage是否是您正在等待的值以及它是否正确工作(例如此处)。

我不知道你的图片的文件类型,但请确保data:image/jpeg是正确的。


查看完整回答
反对 回复 2021-10-22
?
森栏

TA贡献1810条经验 获得超5个赞

好的,我找到了问题所在。我在这个项目中为我的队友制作了一个假的 php API。所以我在 VSCode 的一个变量中复制和过去了编码为 base64 的数据。这是因为我的队友可以使用来自 API 的正确数据格式测试他的网站,而无需在虚拟机上使用服务器,因为他的 PC 太弱而无法使用 VMWare...

我的问题就在这里。当我通过数据时,VSCode 在字符串的每个特殊字符后添加一个 '\' ......这可能是 VSCode 的 AddOn 做到的。

所以谢谢你并注意你在 VSCode 上的插件


查看完整回答
反对 回复 2021-10-22
  • 2 回答
  • 0 关注
  • 361 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信