如何在Zend控制器或表单中验证文件上载的文件名长度

时间:2013-03-24 17:34:19

标签: zend-framework file-upload long-filenames

我尝试为从Zend表单上传的文件名长度添加验证器。 我不知道是否应该在表单本身或处理上传的Zend_File_Transfer_Adapter_Http中添加此验证程序。但是,现在我正在尝试第二件事 - 请参阅下面的代码。如果要上传的文件名长度超过40个字符,我希望控制器重定向错误标志。

$upload即使有41个字符长文件名也会生效 - 为什么?

$upload = new Zend_File_Transfer_Adapter_Http();

$upload->addValidators(
        array(
            array('validator' => 'StringLength', 'options' => array(
                'min' => 0,
                'max' => 40))
        )
);

if (!$upload->isValid()) {
    $this->_redirect('/customer/uploadfile/groupid/'.$groupId.'/flag/XXX-TODO-Failure');
}

1 个答案:

答案 0 :(得分:1)

看起来您没有使用您显示的代码验证任何内容。

按如下所示更改行以引用文件名,例如...

if(!$upload->isValid( $filenameToValidate ) {

...}

还记得文件名不是帖子,但可以在$ _FILES超全局中找到。