ZF2形式的IsImage验证器

时间:2012-07-29 09:05:44

标签: php file-upload validation zend-framework2

我在Zend Framework 2-beta5的Form类中实现IsImage文件验证器时遇到问题。

一般来说,我在Zend框架2中的Zend Form类中使用任何File验证器时遇到问题。

我找不到任何相关文件。

我发现了例如驻留在Library / Zend / Validator的Float验证器 可以使用以下代码:

    $this->setInputFilter($inputFactory->createInputFilter(array(
            'alcohol_vol' =>     array(
                    'name' => 'alcohol_vol',
                    'required' => true,
                    'validators' => array(
                            array(
                                    'name' => 'Float',
                            ),
                    ),
            ),
    ))); 

IsImage文件验证器驻留在/ Library / Zend / Validator / File,无法找到使用它的方法。任何有关该问题的信息将不胜感激。

谢谢!

幼狮

2 个答案:

答案 0 :(得分:1)

尝试在validators密钥下添加此代码段,如下所示:

'validators' => array(
    array(
        'name' => '\Zend\Validator\File\IsImage',
        'options' => array(
            'break_chain_on_failure' => true,
        ),
    ),
),

但有时候,依赖于服务器配置,IsImage可能无法正常工作。然后使用Extension验证器:

'validators' => array(
    array(
        'name' => '\Zend\Validator\File\Extension',
        'options' => array(
            'extension' => array(
                'png', 'jpeg', 'jpg',
            ),
            'break_chain_on_failure' => true,
        ),
    ),
),

答案 1 :(得分:0)

上传文件验证/过滤器应该使用Zend \ File \ Transfer但不能使用Zend \ Form

尝试以下方式添加文件验证程序

$fileTransfer = new Zend\File\Transfer\Transfer();
$fileTransfer->addValidators(array(
    array('IsImage', true)
));
if($fileTransfer->isValid()){
    $fileTransfer->receive();
}