对于imagepath的值,添加操作失败

时间:2015-04-30 12:18:35

标签: php zend-framework zend-db

在我的数据库中,我有一个varchar字段来保存路径,包括图像文件的名称。在我的视图中,我也使用了这个字段。如果我通过phpadmin在我的数据库中插入测试路径名,一切正常。

如果我使用我的Controller addAction,我无法保存路径,没有错误。

这是我的addAction:

$form = new Application_Form_Buch();
$form->submit->setLabel('Add');
$this->view->form = $form;
if ($this->getRequest()->isPost()) {
    $formData = $this->getRequest()->getPost();
    if ($form->isValid($formData)) {
        $autor = $form->getValue('autor');
        $verlag = $form->getValue('verlag');
        $titel = $form->getValue('titel');
        if( $form->getElement('datei')->receive() <> 1)
        {
            echo '    filename:      '. $form->getElement('datei')->receive();
            $imagepath = $form->getElement('datei')->getFileName();
            //echo '    filename:      '. $form->getElement('datei')->getFileName();
            $pathparts = pathinfo($form->getElement('datei')->getFileName());
            //echo '    pathparts:     '. $pathparts;
            //then get the part that you want to use
            $originalFilename = $pathparts['basename'];
            //echo '     originalFilename:      '. $originalFilename;
            //echo '     Test basename:      '. $originalFilename['basename'];
            $form->getElement('datei')->addFilter('Rename','images' );      //'/images/upload/',$originalFilename
            //rename funktioniert so nicht
            $originalFilename = $pathparts['basename'];
            $imagepath=$form->getElement('datei')->getFileName();
            $imagepath = str_replace($imagepath, "/images/cover/".$originalFilename, $imagepath);   //funktioniert !!!
            //echo '     imagepath:      '. $imagepath;
            $books = new Application_Model_DbTable_Bibliothek();
            $books->addBook( $autor, $titel, $verlag,  $imagepath );
        }
        else{
            $imagepath=NULL;
        }

        //  $this->_helper->redirector('index');
    } else {
        $form->populate($formData);
    }
}

请不要介意我试了一下,所以我还有一些评论。我测试了变量$imagepath,它提供了所需的值,即:/images/cover/imagename.jpg。这个pathvalue中的错误在哪里?

这是我用来存储在我的数据库中的add函数:

public function addBook($autor, $titel, $verlag, $pfad)
{
    $data = array(
        'autor' => $autor,
        'titel' => $titel,
        'verlag' => $verlag,
        'pfad' => $pfad,                    
    );
    $this->insert($data);
}

它工作得很好,它保存所有提交数据而不是$pfad变量。

NEW: 必须是格式为$imagepath的东西,我刚刚添加用于测试:$imagepath= '/images/cover/Labyrinth_200.jpg';并在我的数据库表中找到值。因此,错误应采用获取$imagepath的值的格式。

0 个答案:

没有答案