ispost と isvalid を分割する必要がある場合があります。
if( isset( $_POST['submit'] )) {
if ($form->isValid( $_POST )){
echo 'Thank you';
}
//if is post but not valid reload page and render the errors
echo $form->render( $view );//render form with errors
echo $form->getMessages($view);//or just render the messages back to the view
} else {
echo $form->render( $view );//if not post render form
}
これは私の最善の推測です。
[編集]
やってみました
$file->addDecorator('File');
それ以外の
$file->setDecorators(array(
'File',
'Errors',
));
フォーム レベルの setElementDecorators が、ファイル エレメント デコレータの設定を妨害している可能性があります。addDecorator() または addDecorators() はそれを防ぐ必要があります。
また、他の潜在的な問題を排除するために、テスト用のデフォルトのデコレーターを使用することをお勧めします。
明らかなものは何も見えません。本当に違うのは、File 要素が isValid() を Zend_File_Transfer にプロキシすることだけです。そこに問題がある可能性があると思いますが、問題がある場合は重大なエラー メッセージが表示されると予想されます。