Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 画廊zend框架_Php_Zend Framework - Fatal编程技术网

Php 画廊zend框架

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

你好,我正在学习Zend框架,我想制作简单的图库。我有一个表单并将照片上传到db,但当我想显示时,我得到的是强度文本而不是图像。如何检索这些图像?。在db中,我有BLOB类型的照片行。这是我的代码:控制器

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'] ?>">