如何使用Zend显示图像?

时间:2012-03-17 11:17:36

标签: image zend-framework using

请帮助,我目前正在学习使用Zend构建网站但仍然无法在view.phtml上显示图片

我写信给我的Form_PersonilCreate.php:

$this->setAction('/data/personil/create')
        ->setMethod('post');

    //Item input untuk gambar
    $images = new Zend_Form_Element_File('images');
    $images->setDestination(APPLICATION_PATH . "/../public/images/personil");
    $images->addValidator('Count', false, 1)
            ->addValidator('IsImage')
            ->addValidator('size', false, '204800')
            ->addValidator('Extension', false, 'jpg, png, gif, jpeg')
            ->addValidator('ImageSize', false, array(
                    'minwidth' => 150,
                    'minheight' => 150
                    ))
                    ->setValueDisabled(true);
    //Attach element kedalam form
    $this->addElement($images);

//其他代码在这里.....................

在PersonilController.php

 public function createAction()
{
    $form = new Pengadilan_Form_PersonilCreate();
    $this->view->form = $form;
    $flashMessenger = $this->_helper->FlashMessenger;

    //SImpan kedatabase
    if($this->getRequest()->isPost()){
        if($form->isValid($this->getRequest()->getPost())){
            $personil = new Pengadilan_Model_Personil();
            $personil->fromArray($form->getValues());
            $personil->RecordDate = date('Y-m-d', mktime());
            $personil->DisplayStatus = 0;
            $personil->DisplayUntil = null;
            $personil->save();
            $id = $personil->RecordId;

            if ($form->images->isUploaded()){
                $form->images->receive();                   
                $personilImages = '/images/personil/' . basename($form->images->getFileName());

            }

//其他代码在这里.........

图像成功上传到目标文件夹,但我很困惑如何在我的display.phtml上显示图像

我正在使用ZF 1.8和Doctrine 1.2 非常感谢你的帮助...

1 个答案:

答案 0 :(得分:0)

如果目标文件夹位于您的网络根目录下(或符号链接到网络根目录下的文件夹),那么display.phtml中就会出现这样的情况:

<img src="<?= $this->baseUrl() ?>/path/to/your/image.jpg" />

但是,如果上传目标位于外部网络根目录,那么您可能需要一个特殊的控制器来访问这些图像并进行传送。由于这会导致整个MVC调度周期的成本仅仅是为了传递图像,因此通常保留用于需要控制对上载图像的访问的情况。