【问题标题】:zend framework images from database来自数据库的 zend 框架图像
【发布时间】:2012-04-15 18:58:43
【问题描述】:

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

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

<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。

谢谢

瑞克

【问题讨论】:

    标签: database image zend-framework


    【解决方案1】:

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

    这是一个矛盾。您的数据库字段要么包含图像路径,要么包含图像的二进制数据。我根据您的其他问题假设是后者。

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

    【讨论】:

    • 所以如果我想要图像路径我可以使用 varchar 吗?然后将图片路径回显到img标签的src字段中?
    • 是的,您可以存储图像的路径,然后将其回显到您的 img 的 src 中
    • 我试过了,字段是varchar,限制为1024个字符,我检查了,图片路径是正确的。我使用了 -> clubs['pic_1'];?>" /> 这也是正确的,当我在 Firefox 中查看源代码时,它看起来像 -> 这也是正确的。但是没有图像.. 另一个奇怪的事情是,当我只添加纯 html 来显示图像时,我什么也得不到..
    • 此外,如果我在页面源中单击“”,则会收到以下错误:pastebin.com/wk4gXsUA
    • 我刚刚意识到我的布局文件中的另外 2 个图像在我第一次加载网站时不会出现,但是如果我点击我的主页链接它们会出现。但是如果我导航到我正在尝试从数据库中获取它们消失的图像。我不知道这里发生了什么。你以前听说过这样的事情吗?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      感谢大家的帮助!

      【讨论】:

        猜你喜欢
        • 2023-04-10
        • 2023-03-24
        • 1970-01-01
        • 2010-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多