特定のファイル プロパティを検証するために Zend_Form_Element_File を使用しています。問題のファイル入力要素は動的に作成されます。の形式にすることもできますが、必須ではありません。ただし、そうであり、ファイルがそれを介して送信された場合は、特定の基準を満たす必要があります。
フォームにファイル要素が含まれていない場合、「ファイルが定義された ini サイズを超えています」という問題が発生しました。意図した動作ですか?
FormUpload は両方のフォーム要素に対して検証する必要があることに注意してください。$_FILES 配列が空であるかどうかに応じて、さまざまな Zend_Forms を使用できますが、Zend_Form がデータ/データ フィールドを検証する必要があることを考えると、それは不十分な解決策のように感じます。
問題を再現するコード:
<?php
class FormUpload extends Zend_Form
{
public function init()
{
$upload = new Zend_Form_Element_File('upload');
$upload->setRequired(false);
$this->addElement($upload);
}
}
var_dump($_POST, $_FILES);
if (!empty($_POST))
{
$form = new FormUpload();
if ($form->isValid($_POST))
{
$values = $form->getValues();
var_dump($values);
}
else
var_dump($form->getMessages());
}
?>
<form method='post' enctype="multipart/form-data">
<input type='hidden' name='something' value='something'/>
<input type='submit' value='submit'/>
</form>
<form method='post' enctype="multipart/form-data">
<input type='file' name='upload'/>
<input type='submit' value='submit'/>
</form>
私はそれをバグとして扱います - この問題の解決策は、検証済みの名前を入力フィールドに常に持つことです。そうしないと、このエラーが発生します。