我有控制器的代碼如下:無法重命名Zend框架上載的圖像
$form_company=new Project_Form_AddCompany();
$this->view->form=$form_company;
$form_company->setAction('add-Company');
if ($this->_request->isPost()) {
$formData = $this->_request->getPost();
if ($form_company->isValid($formData)) {
$company_name = $this->_getParam('company', 0);
echo $company_name;
// success - do something with the uploaded file
$uploadedData = $form_company->getValues();
$form_company->uploaded_file->addFilter(new Zend_Filter_File_Rename(array('target' => $company_name.'.jpg')));
Zend_Debug::dump($uploadedData, '$uploadedData');
//echo 'End: ';
}
// action body
}
雖然在形式I具有以下代碼:
<?php
class Project_Form_AddCompany extends Zend_Form
{
public function init()
{
$company=new Zend_Form_Element_Text('company');
$company->setLabel('CompanyName')
->setRequired(true);
$com_des=new Zend_Form_Element_Textarea('com_des');
$com_des->setLabel('CompanyDescription')
->setAttrib('cols', '40')
->setAttrib('rows', '4')
->setAttrib('style', 'resize: none;')
->setRequired(true)
->addValidator('NotEmpty');
$com_addr=new Zend_Form_Element_Textarea('com_addr');
$com_addr->setLabel('CompanyAddress')
->setAttrib('cols', '40')
->setAttrib('rows', '4')
->setAttrib('style', 'resize: none;')
->setRequired(true)
->addValidator('NotEmpty');
$file = new Zend_Form_Element_File('uploaded_file');
$file->setDestination(PUBLIC_PATH . '/images/')
->setLabel('File')
->setRequired(true)
->addValidator('NotEmpty');
$submit = new Zend_Form_Element_Submit('submit');
$this->addElements(array($company,$com_des,$com_addr,$file,$submit));
}
}
由於我必須重新命名的上傳的圖像to $ company_name.png那就是爲什麼我在控制器中使用addFilter方法,其中$ company_name是用戶輸入的textfield公司(在表單中)的值。但名稱未被更改。要重命名應該做什麼?
在我的情況下,$ location和$ yourLocation是相同的,因爲我已經在窗體中指定了路徑,但是在寫入上面的代碼之後,圖像沒有被重命名。 – ryan 2012-01-04 13:40:11
這意味着move_uploaded_file返回false:這裏的$ location是「C:\ Users \ 398853 \ Documents \ NetBeansProjects \ MST \ public/images \ Chrysanthemum.jpg」,而$ yourLocation。$ company_name。'。jpg'是「C:\ Users \ 398853 \ Documents \ NetBeansProjects \ MST \ public/images/jhm.jpg「 – ryan 2012-01-04 13:50:38
您是否嘗試過使用'rename()'? – dinopmi 2012-01-04 14:26:47