Валидатор IsImage в формах ZF2

У меня проблемы с реализацией валидатора IsImage File в классе Form в Zend Framework 2-beta5.

В общем, у меня проблемы с использованием любого валидатора файлов в классе Zend Form в Zend framework 2.

Я не смог найти никакой соответствующей документации.

Я обнаружил, что, например, валидатор Float, который находится в Library/Zend/Validator, можно использовать со следующим кодом:

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

средство проверки файлов IsImage находится в папке /Library/Zend/Validator/File и не может найти способ его использования. любая информация по этому вопросу будет принята с благодарностью.

Спасибо!

Кфир


person ufk    schedule 29.07.2012    source источник


Ответы (2)


Попробуйте добавить этот фрагмент под ключ validators, например:

'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,
        ),
    ),
),
person Tomasz Racia    schedule 03.12.2014
comment
Знаете ли вы, по какой причине \Zend\Validator\File\IsImage не работает на некоторых серверах? Как можно перенастроить сервер, чтобы решить эту проблему? - person cakan; 27.01.2016
comment
Я думаю, это проблема, когда у вас нет расширения FileInfo. Установите его и включите, добавив extension=php_fileinfo.dll. Должно помочь. - person Tomasz Racia; 27.01.2016

Проверка/фильтр загружаемого файла должен использовать Zend\File\Transfer, но не Zend\Form

Попробуйте ниже способ добавить валидатор файлов

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