来自数据库的图像无法在Zend中呈现

时间:2011-04-18 10:27:31

标签: zend-framework

我正在尝试从数据库(blob)字段中检索图像并在网页上呈现它。在Zend之外,在测试应用程序中,这可以正常工作。但是,在Zend框架内,渲染失败。相反,URL将显示在其他空白页面上。如果我包含Zend_Debug语句,它会显示从db(MySQL)检索的完整二进制流。以下是我正在使用的一些代码:

<?php
$result = $q->fetchArray();  //fetch result from the database through Doctrine
header("Content-Type: {$result[$seq]["mimeType"]}"); //get MIME type from db, set header
$pict = $result[$seq]["picture"]; //get image from db blob field
// echo Zend_Debug::dump($pict, '$pict');
?>

如果有人能对这个问题有所了解,我将非常感激。 谢谢,Jan

2 个答案:

答案 0 :(得分:1)

这不是“趋势方式”。您应该使用响应对象方法来设置标头,然后使用sendHeaders()和sendBody()来触发响应。不需要禁用布局。

答案 1 :(得分:0)

有一个内置帮助器就是这样做的。不要使用php header()函数,使用

$ this-&gt; headMeta() - &gt; appendHttpEquiv('Content-Type',$ this-&gt; result [$ seq] [“mimeType”]);

有点像那样。您可以在视图中或控制器中或您正在使用的任何内容中执行此操作。 http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.headmeta