我在数据库中的blob字段中有图像我使用blow colde来显示图像但是 它没有显示任何图片,有人可以告诉我哪里错了?
这是我的模特:
public function getListUser() {
$select = $this->select()
->order('lastname DESC');
$adapter = new Zend_Paginator_Adapter_DbTableSelect ($select);
return $adapter;
}
这是我的控制器:
$userModel = new Admin_Model_User();
$adapter = $userModel->getListUser();
$paginator = new Zend_Paginator ($adapter);
$paginator->setItemCountPerPage(1);
$page = $this->_request->getParam('page', 1);
$paginator->setCurrentPageNumber($page);
$this->view->paginator = $paginator;
这是我的观看代码:
<td style="width: 20%;"> <?php
echo $this->lastname ?> </td>
<td style="width: 20%;"><?php header("Content-type: image/gif"); print $this->image; ?></td>
答案 0 :(得分:4)
这不是您显示图像的方式。
您的代码看起来应该是这样的。
<td style="width: 20%;"> <?php
echo $this->lastname ?> </td>
<td style="width: 20%;"><img src="/link-to-php-that-shows-image.php?id=123" /></td>
现在,以php文件为例(link-to-php-that-shows-image.php)。您从数据库中获取图像字段并显示它。实施例..
<?php
$image = //get image from database, based on id etc.
header("Content-type: image/gif");
print $image;
?>
答案 1 :(得分:0)
你不能做这行代码。
<td style="width: 20%;">
<?php header("Content-type: image/gif"); print $this->image;?>
</td>
这是因为,<td style="width: 20%;">
是html元素,在图像输出之前被打印,headers
被发送到输出图像,所以你得到错误
Error:: Cannot modify header information - headers already sent by ..
但是你没有在zend框架中收到此错误,因为错误显示可能已被关闭,因此请查看您的application.ini
文件进行设置。
执行此操作的最佳方法是将图像存储在文件夹中,并将filename
或filepath
存储在数据库中并回显诸如
<td style="width: 20%;">
<img src="<?php echo $imagefullpath; ?>"/>
</td>
但是,如果您仍想将图像存储在数据库中,则可以使用ajax
加载图像。如需进一步帮助,请发表评论。
答案 2 :(得分:-2)
初学者有一个非常方便的规则:
除了纯HTML之外,PHP无法做任何事情。
现在给自己回答一个问题:
然后另一个
最后一个: