/**
  * Validates the input.
  * 
  * @return     bool File is valid image according to given parameters.
  * 
  * @author     Dominik del Bondio <*****@*****.**>
  * @since      0.11.0
  */
 protected function validate()
 {
     if (!parent::validate()) {
         return false;
     }
     $file = $this->getData($this->getArgument());
     $type = @getimagesize($file->getTmpName());
     if ($type === false) {
         $this->throwError('no_image');
         return false;
     }
     list($width, $height, $imageType) = $type;
     if ($this->hasParameter('max_width') && $width > $this->getParameter('max_width')) {
         $this->throwError('max_width');
         return false;
     }
     if ($this->hasParameter('min_width') && $width < $this->getParameter('min_width')) {
         $this->throwError('min_width');
         return false;
     }
     if ($this->hasParameter('max_height') && $height > $this->getParameter('max_height')) {
         $this->throwError('max_height');
         return false;
     }
     if ($this->hasParameter('min_height') && $height < $this->getParameter('min_height')) {
         $this->throwError('min_height');
         return false;
     }
     if (!$this->hasParameter('format')) {
         return true;
     }
     // We need this additional alias map because image_type_to_extension()
     // returns only "jpeg" but not "jpg" or "tiff" but not "tif"
     $aliases = array(IMAGETYPE_JPEG => 'jpg', IMAGETYPE_TIFF_II => 'tif', IMAGETYPE_TIFF_MM => 'tif');
     $ext = image_type_to_extension($imageType, false);
     $format = $this->getParameter('format', array());
     if (!is_array($format)) {
         $format = explode(' ', $this->getParameter('format'));
     }
     foreach ($format as $name) {
         $lName = strtolower($name);
         if ($ext == $lName) {
             return true;
         } elseif (isset($aliases[$imageType]) && $aliases[$imageType] == $name) {
             return true;
         }
     }
     $this->throwError('format');
     return false;
 }
 /**
  * Validates the input.
  * 
  * @return     bool File is valid image according to given parameters.
  * 
  * @author     Dominik del Bondio <*****@*****.**>
  * @since      0.11.0
  */
 protected function validate()
 {
     if (!parent::validate()) {
         return false;
     }
     $file = $this->getData($this->getArgument());
     $type = @getimagesize($file->getTmpName());
     if ($type === false) {
         $this->throwError('no_image');
         return false;
     }
     list($width, $height, $imageType) = $type;
     if ($this->hasParameter('max_width') && $width > $this->getParameter('max_width')) {
         $this->throwError('max_width');
         return false;
     }
     if ($this->hasParameter('min_width') && $width < $this->getParameter('min_width')) {
         $this->throwError('min_width');
         return false;
     }
     if ($this->hasParameter('max_height') && $height > $this->getParameter('max_height')) {
         $this->throwError('max_height');
         return false;
     }
     if ($this->hasParameter('min_height') && $height < $this->getParameter('min_height')) {
         $this->throwError('min_height');
         return false;
     }
     if (!$this->hasParameter('format')) {
         return true;
     }
     $formats = array('gif' => IMAGETYPE_GIF, 'jpeg' => IMAGETYPE_JPEG, 'jpg' => IMAGETYPE_JPEG, 'png' => IMAGETYPE_PNG, 'bmp' => IMAGETYPE_BMP, 'psd' => IMAGETYPE_PSD, 'swf' => IMAGETYPE_SWF);
     $format = $this->getParameter('format', array());
     if (!is_array($format)) {
         $format = explode(' ', $this->getParameter('format'));
     }
     foreach ($format as $name) {
         if ($formats[strtolower($name)] == $imageType) {
             return true;
         }
     }
     $this->throwError('format');
     return false;
 }
Exemplo n.º 3
0
 /**
  * Validates the input
  * 
  * @return     bool The file is valid according to given parameters.
  * 
  * @author     Dominik del Bondio <*****@*****.**>
  * @since      0.11.0
  */
 protected function validate()
 {
     return parent::validate();
 }