3

私は何か奇妙なことに気づいていて、誰かが私のコードを彼らの側でテストして、彼らが同じことをするかどうか私に知らせてくれるかどうか疑問に思っていました。

ファイルのアップロード+非表示のハッシュ+送信ボタンしかない本当にシンプルなフォーム(以下の完全なフォームコードとアクションコードを参照)があります。ファイルのアップロードには、最大サイズ制限が10000000(約9.5MB)に設定されています。

制限を超えるファイルをアップロードしようとすると、フォームが検証されないはずですが、ハッシュトークン自体にエラーが発生しますValue is required and can't be empty。誰かが確認できますか?トークンが消去されているようです。これはリダイレクトなどの場合に発生する可能性があると思いますが、バックグラウンドで気付かないことが発生していない限り、リダイレクトは実行していません。

これがフォームコードと私のアクションコードです

class Application_Form_TestForm extends Zend_Form
{

    public function init()
    {   

    $file = new Zend_Form_Element_File('file');
    $file->setDestination(APPLICATION_PATH);
    $file->addValidator('Size', false, 10000000);
    $file->setMaxFileSize(10000000);
    $this->addElement($file);

    $hash = new Zend_Form_Element_Hash('hash');
    $hash->setIgnore(true)
         ->setSalt('mysalt');
    $this->addElement($hash);  

    $submit = new Zend_Form_Element_Submit('submit');       
    $submit->setLabel('Test')
           ->setIgnore(true);            
    $this->addElement($submit);  

    $this->setAttrib('enctype', 'multipart/form-data');
    $this->setMethod('post');
}
}

私のコントローラーでは、通常の検証を行います

public function indexAction()
{
    $form = new Application_Form_TestForm();
    $this->view->form = $form;

    if($this->_request->isPost()){          
        echo "post";
        if($form->isValid($this->_request->getPost())){
           echo " valid";
        }
    }

}
4

1 に答える 1

3

これは、php.iniのpost_max_sizeまたはupload_max_filesizeの値に関連しているようです。たとえば、post_max_sizeのデフォルト値は8Mで、最大ファイルサイズよりも小さくなっています。

于 2011-01-25T02:59:50.560 に答える