来自数据库的zend框架图像

时间:2012-04-15 18:58:43

标签: database image zend-framework

我只是希望从页面上显示的数据库中获取图像。

我将图像路径保存为数据库中的blob,然后尝试回显img标记的source属性中的字段。但是我显示了很多随机字符,没有图像..下面是我在页面视图中显示的图像:

<div id="club_pictures">
    <img id="pic_1" src="<?php echo $this->clubs['pic_1']; ?>" />
    <img id="pic_2" src="<?php echo $this->clubs['pic_2']; ?>" />
    <img id="pic_3" src="<?php echo $this->clubs['pic_3']; ?>" />
</div>

如果我在浏览器中点击查看源,我会得到确切的HTML,我想要显示图像。

由于

里克

3 个答案:

答案 0 :(得分:0)

  

我将图像路径保存为数据库中的blob

这是一个矛盾。您的数据库字段包含图像路径或图像的二进制数据。我根据你提出的其余问题假设它是后者。

您不能以这种方式将二进制数据回显到页面。您需要创建一个单独的操作或URL,根据URL中的参数加载正确的图像数据,提供适当的标题(包括正确的mime类型),然后回显二进制数据(没有任何其他输出)。在HTML示例中,您将为每个图像回显此操作的路径。应该有很多例子解释如何使用PHP来解决这个问题。

答案 1 :(得分:0)

您也可以尝试直接在HTML中嵌入图片

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

答案 2 :(得分:0)

事实证明我应该使用baseUrl助手来给出图像文件的绝对誓言。我一做到这一点就行了!感谢ZendFramework images not loading [这篇文章] [1]。我的工作代码如下所示:

<img id="pic_1" src="<?php echo $this->baseUrl($this->clubs['pic_1']) ?>" />

感谢各位帮忙!