1

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

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

我找不到任何相关文件。

我发现例如位于 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 并且找不到使用它的方法。任何有关该问题的信息将不胜感激。

谢谢!

克菲尔

4

2 回答 2

1

尝试在validatorskey 下添加此代码段,如下所示:

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

但有时,取决于服务器配置,IsImage 可能无法正常工作。然后改用扩展验证器:

'validators' => array(
    array(
        'name' => '\Zend\Validator\File\Extension',
        'options' => array(
            'extension' => array(
                'png', 'jpeg', 'jpg',
            ),
            'break_chain_on_failure' => true,
        ),
    ),
),
于 2014-12-03T14:52:42.993 回答
0

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

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

$fileTransfer = new Zend\File\Transfer\Transfer();
$fileTransfer->addValidators(array(
    array('IsImage', true)
));
if($fileTransfer->isValid()){
    $fileTransfer->receive();
}
于 2012-07-30T02:56:50.970 回答