我无法从我的数据库中检索图像

Posted

技术标签:

【中文标题】我无法从我的数据库中检索图像【英文标题】:I can't retrieve Image from my database 【发布时间】:2012-10-07 21:51:38 【问题描述】:

我有一个包含电影名称、描述和封面图片的数据库。封面图片字段类型为 blob,问题是我无法从数据库中检索它。我想在他们旁边的封面图片上显示电影名称...怎么做..这是我的代码..

<?php

include ("php/connection.php");
$ID = $_GET['id'];
$listmovies = "SELECT * FROM movies where Genres LIKE '%$ID%'";
$result = mysql_query($listmovies);
while ( $row = mysql_fetch_assoc($result) ) 
    ?>
<table border="1" >
    <tr>
        <td rowspan="2"  >
<?php

    // set the header for the image
    header("Content-type: image/jpeg");
    echo $row['Image'];

    ?> </td>
        <td  >
<?php

    echo $row['Title'];
    ?></td>
    </tr>
    <tr>
        <td  ><a
            href="php/moredetails.php?id=<?php echo $row['ID']; ?>">More Detail</a></td>
    </tr>
<?php  ?> </table>

我只想在电影标题旁边显示 The Imgaes?

【问题讨论】:

可能有用:***.com/questions/6106470/… 另外:***.com/questions/5932249/… 实际上链接回***.com/questions/5525830/…,我将在其中查看this answer which uses a data-URI 最好不要将图像直接存储在数据库中,而是将图像存储在文件系统上的路径,然后可以将其转换为 URL。 在你的实现中添加更多细节和代码......你也可以删除标题看看你是否有一些语法错误 【参考方案1】:

是的,它不会显示,因为any output above header would always generate error ...您需要有一个不同的页面来输出您的图像或包含它有base64 图像

删除

header("Content-type: image/jpeg");
echo $row['Image'];

并添加:

printf("<img src=\"data:image/jpeg;base64,%s\" />",base64_encode($row['Image']));  
                               ^--- Note this is only for jpeg images

【讨论】:

为什么你用"foo\"foo\""而不是'foo"foo"'【参考方案2】:

我建议这样:

创建一个名为 image.php 的新 php 文件;该文件将替换物理图像文件。 在该文件中,您将帖子中的代码加上一些从数据库中获取图像数据的逻辑;

在父模板(可能是 php 文件)中,您为图像添加代码:

<img src="image.php?id_movie=<?php echo $id_movie; ?>" width ="200"  /> More Detail

在 image.php 中,我建议小心 php 标记之外的空格(在开头和结尾处)。 同样对于 image.php,您需要提供电影的 id 以了解要从数据库加载的图像。

【讨论】:

以上是关于我无法从我的数据库中检索图像的主要内容,如果未能解决你的问题,请参考以下文章

为啥从数据库中检索图像时我只找到图像路径

jquery-无法从我通过ajax调用获得的对象类型响应中检索数据

从我的表单中的字段中保存数据并通过在我的主视图控制器中列出主键来检索它们?

在启用 CORS 的情况下,无法从我的请求标头中检索我的 x-api-key。为啥?

如何从 laravel 中的某个路由页面检索图像或文件?

从mysql中检索图像并设置为pictureBox C#