php - Validating files in Zend Framework 2 -
examine code below, file upload , want validate it. check file extensiton, size , mime. if check them 1 one results correct, when use $adapter->setvalidators() result false positive.
are zf2 validators act in weird way or maybe don't understand how supposed use it?
code
<?php $data = array_merge_recursive( $this->getrequest()->getpost()->toarray(), $this->getrequest()->getfiles()->toarray() ); /* set mime on server side */ $finfo = new \finfo(fileinfo_mime); $mimeinfo = explode(';', $finfo->file($data['upload_image']['tmp_name'])); $data['upload_image']['type'] = $mimeinfo[0]; $adapter = new \zend\file\transfer\adapter\http(); $validatorsize = new \zend\validator\file\size(10); $validatorext = new \zend\validator\file\extension('gif,jpg,jpeg,png'); $validatormime = new \zend\validator\file\mimetype('image/gif,image/jpg,image/jpeg,image/png'); $results = array(); $results['size'] = $validatorsize->isvalid($data['upload_image']); $results['ext'] = $validatorext->isvalid($data['upload_image']); $results['mime'] = $validatormime->isvalid($data['upload_image']); $adapter->setvalidators(array( $validatorsize, $validatorext, $validatormime, ), $data['upload_image']); $results['adapter'] = $adapter->isvalid(); \zend\debug\debug::dump($results); ?> results
array(4) { ["size"] => bool(false) ["ext"] => bool(true) ["mime"] => bool(false) ["adapter"] => bool(true) }
i hope correctly understood meaning of question :) can use addvalidator() method, second param $breakchainonfailure. such behavior true chains of validators. if not explicitly break, executed each validator.
Comments
Post a Comment