【问题标题】:What am I missing or doing wrong, trying to get image out of database using BLOB我错过了什么或做错了什么,试图使用 BLOB 从数据库中获取图像
【发布时间】:2015-03-05 07:49:50
【问题描述】:

我正在尝试使用 Blob 从数据库中获取图像,我知道它不安全,但它是用于演示目的。下面是我目前的代码。

<?php
error_reporting(0);
require './db/connect.php';
include './includes/header.php';
?>

<?php
    if($result = $connection->query("SELECT * FROM Production")){
            if($count = $result->num_rows){

                while($row = $result->fetch_object()){
                    ?>
            <table class="productioninfo" style="width: auto; height: auto; border: 5px black solid;">    
            <tr>
                <th>Image:</th>
                <td><img src="/phpmyadmin/production/<?php echo $row->ProductionId;?>.jpeg" </td>

                <th>Production Name:</th>
                <td><?php echo $row->ProductionName; ?></td>

                <th>Production Type:</th>
                <td><?php echo $row->ProductionType; ?></td></br>
            </tr>


                <?php
        }
        $result->free();
    }
}
echo $result; 

include './includes/footer.php';

我还想知道如何以另一种方式进行操作,将文件路径保存在数据库中,然后将其显示在网页上。

非常感谢您的帮助!

【问题讨论】:

  • 请分享您的生产表结构。
  • 您的代码似乎假定它是存储的路径而不是图像数据。如果您在数据库中有图像数据,请在此处查看示例:stackoverflow.com/questions/1295618/…
  • @harry 看上面我已将其编辑到我的问题中:)
  • 我首先要确保您的图像检索脚本工作正常。致电http://localhost/phpmyadmin/production/1.jpeg(或使用您知道存在的任何ID)并检查是否返回了有效图像。我同意@jeroen——这个 URL 的形成方式看起来像是一个错误,除非你还重新配置了 Apache。最后,您将开发文件添加到 phpmyadmin 文件夹是很奇怪的;您应该在另一个文件夹中进行开发。显示一些图像显示代码。您如何将图像存储在数据库中 - 显示您用于上传它们的代码。

标签: php html image mysqli


【解决方案1】:

此行中的一个错误:

&lt;td&gt;&lt;img src="/phpmyadmin/production/&lt;?php echo $row-&gt;ProductionId;?&gt;.jpeg"&lt;/td&gt;.

尝试正确关闭img标签:

&lt;td&gt;&lt;img src="/phpmyadmin/production/&lt;?php echo $row-&gt;ProductionId;?&gt;.jpeg" /&gt;&lt;/td&gt;

然后确保图像在存储和检索时分别正确编码和解码。

【讨论】:

    【解决方案2】:

    将图像保存到数据库时,您必须对其进行编码,然后保存到数据库。 & 在 HTML 中显示时,您必须对其进行解码。

    编码:

    $img_encoded = base64_encode('your image');
    

    在 HTML 中解码和显示

    <img src="data:image/jpg;base64,'.$img_encoded.'"/>
    

    【讨论】:

    • 你也可以用 google 创建 bas64 图像。上传你的图片,他们会给你编码的字符串,将该字符串存储在你的数据库中。然后获取它并以 src 作为 base64 显示在图像中
    猜你喜欢
    • 2023-03-21
    • 2011-10-09
    • 1970-01-01
    • 2021-08-05
    • 2012-02-01
    • 2019-03-31
    • 2011-06-22
    • 2020-01-11
    • 1970-01-01
    相关资源
    最近更新 更多