Zend Form でファイルをアップロードしようとしていますが、ファイルのアップロードが機能しません。
ここに私のフォームコードがあります:
public function __construct($options = null)
{
parent::__construct($options);
$this->setName('modelupload');
$this->setMethod('post');
$this->setAction('/model/upload');
$this->setAttrib('enctype', 'multipart/form-data');
// ... other elements ... //
$file = new Zend_Form_Element_File('file');
$file
->setAttrib('title', 'Select a file to upload.')
->setAttrib('required',"")
->setRequired(true)
->addValidator('Count',false,1)
->addValidator('Size',false,104857600)
->setMaxFileSize(104857600)
->setValueDisabled(true)
->setDestination(APPLICATION_PATH . "/../data/models/temp/")
->setLabel('Select a file to upload.');
$submit = new Zend_Form_Element_Submit('submit', array(
'label' => 'Upload'
));
$submit->removeDecorator('DtDdWrapper');
$this->setDecorators( array( array('ViewScript',
array('viewScript' => 'formViews/_form_upload_model.phtml'))));
$this->addElements(array($name, $description, $file, $submit));
}
そして、ここに私のコントローラコードがあります:
public function uploadAction()
{
// action body
error_reporting(E_ALL);
$this->view->pageTitle = "Model Upload";
$form = new Application_Model_FormModelUpload();
if ($this->_request->isPost()) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) {
echo "<h1>Valid</h1>";
$upload = new Zend_File_Transfer();
$files = $upload->getFileInfo();
$form->getValues();
} else {
echo "<h1>Not Valid</h1>";
}
echo "<pre>";
print_r($formData);
echo "</pre>";
}
$this->view->form = $form;
}
そして、何かをアップロードしようとすると、次のようになります。
Not Valid
Array
(
[name] => title
[description] => description
[MAX_FILE_SIZE] => 104857600
[file] => filename.extension
[submit] => Upload
)
つまり、フォームが検証に合格しておらず、その理由がわかりません。これとは別に、ファイルはアップロードされていません。私は非常に多くのことを試しましたが、今は機知に富んでいます。違いがあれば、ローカル環境で Zend サーバー CE を使用しています。
彼らが提供できる助けを前もって誰にでも感謝します!
編集:
以下の MIss poo のコードを試してみたところ、次のようになりました。
Array
(
)
Array
(
[name] => Array
(
)
[description] => Array
(
)
[file] => Array
(
)
[submit] => Array
(
)
)
Array
(
)
エラーはまったく返されません...