在我的数据库中,我有一个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
的值的格式。