【问题标题】:How to read a blob in Base64 using PHP and MySQL?如何使用 PHP 和 MySQL 读取 Base64 中的 blob?
【发布时间】:2016-06-05 18:32:24
【问题描述】:

我是一个有 6 个月经验的新手,通过 StackEx/books/etc 自学。创建了一个相当不错的网站,登录/注册并通过 mySQL 存储一些信息。我已经浏览了这里的每一个 BLOB 帖子,并且我有一些不错的输出。

我想我,像大多数新手一样,知道足够危险,没有奠定最好的基础,所以当认真理解内置函数、数组和传递参数时,我们可能会失去流程,我基本上认为我已经通过使用包含调用一些导航栏挖了一个洞,这样我就不能只使用标题来输出该死的图像,因为我在登录后回显用户名,所以它已经输出了行,这将是一个怪物撤消。三个级别的导航,未验证,已验证和管理员。

数据库连接和写入/读取都正常。我可以存储 BLOB,甚至可以读回它并将数组存储在一个变量中,然后调试查看二进制文件,但我无法让它显示在 HTML 页面上。

这就是乐趣:

$stmt = $dbc2->query("SELECT * FROM equip1");

while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$name = $row['equipname1'];
$desc = $row['equipdesc1'];
$img = $row['equipimg1'];
}

<div class="col-lg-12">
    <h1><?php echo $name ?></h1>
    <p><?php echo $desc ?></p>
    <pre>
        <?php print_r($img); ?>
    </pre>
    <?php echo "<img src='data:image/jpeg;base64," . base64_encode( $img ) . "' />"; ?>
</div>

$dbc2 连接 equip1 表是两个简单的 varchar 列,一个 BLOB 列。 $name 和 $desc 回显 ok,$img 显示断开的链接。 我通过预代码检查数组并匹配,根据上传期间存储在 dB 中的内容。 从我所阅读和经历的内容来看,除非通过我已经完成但仍然断开链接的数据 URI,否则您似乎无法同时执行此操作。对我来说根本没有意义。我尝试了标头,当然输出已经开始,但我也可以看到输出二进制文件。

这里是URI方法的截图:

由于这两种方法“似乎”进入和退出 dB,但不显示,所以我在绕圈子。请帮助我在 html 页面上显示图像。我想在任何地方呼应它,然后我可以在此之后设置页面样式。谢谢!

【问题讨论】:

  • 我真的已经在这个问题上做了 6-8 小时 呻吟,我保证我会更加努力地学习并向 PHP 之神祈祷,希望得到答案的人。 :)

标签: php html mysql blob


【解决方案1】:

这样试试

<?php echo '<img src="data:image/png;base64,'.base64_encode($img).'">';?>

【讨论】:

  • 没有变化。它也是一个jpeg。感谢您的回答! :)
  • @KevinMorris 没有看到单引号和双引号的地方你检查过这个吗??
  • 是的Pranavadurai!但是你帮了忙!你重新启动了我的大脑,所以我注意到我在进行双重编码。我在存储时对 base64 进行了编码。谢谢!!!! :)
  • 还要注意 Prana 格式更“正确”。我使用单引号来回显,这是我通常做的,但在所有调试过程中,我换掉了这一行,认为这与 html 和 php 变量的连接有关。使用上面的 Prana 行是干净的,只需将您的变量替换为 $img。
  • 首先我认为你有问题,因为当我是 php 新手时,我在这方面犯了错误,这就是为什么我说无论如何都要检查这个快乐编码:)
【解决方案2】:

呃,没关系。从没想过阅读某人的答案会让人“眼前一亮”。我注意到我正在编码,但我在存储它时已经对其进行了编码。过失。哦! :)

【讨论】:

  • 我正要说您渲染的输出数据看起来不像 JPEG 标头! :-)
  • 是的,好吧...咬得比我想的要多。注意到编辑,谢谢。添加了所有我没有的绒毛;除非我已经绕过弯道并返回可以这么说,否则有些家伙倾向于打你,认为你只是懒惰。哇,我真的又能呼吸了……酷!
  • 也感谢@Pranavadurai!不确定我是否明确。
  • 不用担心编辑。我喜欢详细的、经过充分研究的和简洁 - 矛盾的是,大量的浮夸和/或元讨论会鼓励消极的回应。
  • 不用担心编辑。我喜欢详细的、经过充分研究的和简洁 - 矛盾的是,大量的浮夸和/或元讨论会鼓励消极的回应。
猜你喜欢
  • 2012-02-13
  • 1970-01-01
  • 2016-11-16
  • 1970-01-01
  • 2011-04-03
  • 2015-05-30
  • 2021-05-03
  • 2018-06-11
  • 2015-11-06
相关资源
最近更新 更多