Php 画廊zend框架
你好,我正在学习Zend框架,我想制作简单的图库。我有一个表单并将照片上传到db,但当我想显示时,我得到的是强度文本而不是图像。如何检索这些图像?。在db中,我有BLOB类型的照片行。这是我的代码:控制器Php 画廊zend框架,php,zend-framework,Php,Zend Framework,你好,我正在学习Zend框架,我想制作简单的图库。我有一个表单并将照片上传到db,但当我想显示时,我得到的是强度文本而不是图像。如何检索这些图像?。在db中,我有BLOB类型的照片行。这是我的代码:控制器 public function addAction() { $form = new Application_Form_Gallery(); $this->view->form = $form; if($this->getRequest()->is
public function addAction()
{
$form = new Application_Form_Gallery();
$this->view->form = $form;
if($this->getRequest()->isPost()){
$formData = $this->getRequest()->getPost();
if($form->isValid($formData)){
$image = $form->getValue('file');
$gallery = new Application_Model_Gallery();
$gallery->add($image);
$this->_helper->redirector('index');
}else{
$form->populate($formData);
}
}
}
模型
视图:
在您的视图中,您只需将字符串base64解码字符串“转储”到div中,这将不起作用
您可能希望在控制器中设置一个操作,将每张照片渲染为二进制响应。然后在视图中访问此操作:
<img src="<?php $this->url(
'action_that_renders_the_photo', array('id' => $gallery['photo_id']
); ?>">
url(
“呈现照片的动作”,数组('id'=>$gallery['photo\u id']
); ?>">
我更喜欢浏览器中的base64数据。如果您希望使其尽可能接近示例,您可能需要创建一个“>
但请记住,并非所有浏览器都允许嵌入base64数据。你所说的增强文本是什么意思??我得到的不是图像,而是“×MÛyëëM=÷nÓM÷NvÓ:yòxër€ë“zg?]为什么要将图像存储到数据库中?为什么不将图像上传到目录并将其名称存储到数据库中?我不知道我在学习,也许这就是原因:)你能告诉我怎么做吗?它仍然不起作用。我想用这种方式从数据库中获取图像,可能是从目录中获取的。“它不工作”不是一个有用的问题描述。你能说得更具体些吗?您的问题到底在哪里,输出是什么,它与预期的输出有什么不同?看看这个问题,也许会有帮助:
<div class="img" style="width: 150px; height: 150px;">
<?php foreach($this->gallery as $photo):
echo base64_decode($photo['photo']);
endforeach; ?>
</div>
<img src="<?php $this->url(
'action_that_renders_the_photo', array('id' => $gallery['photo_id']
); ?>">
<img src="data:image/png;base64,<?php echo $gallery['photo'] ?>">