示例#1
0
 /**
  * @inheritdoc
  */
 public function validate($input)
 {
     if ($input instanceof UploadedFile) {
         if ($input->error !== UPLOAD_ERR_OK) {
             $this->params['mimeTypes'] = $this->toString($this->params['mimeTypes']);
             return false;
         }
         $input = $input->tempName;
     }
     if (in_array(\rock\helpers\FileHelper::getMimeType($input), $this->toArray($this->params['mimeTypes']), true)) {
         return true;
     }
     if (is_array($this->params['mimeTypes'])) {
         $this->params['mimeTypes'] = $this->toString($this->params['mimeTypes']);
     }
     return false;
 }
示例#2
0
 /**
  * @inheritdoc
  */
 public function validate($input)
 {
     if ($input instanceof UploadedFile) {
         if ($input->error !== UPLOAD_ERR_OK) {
             $this->params['extensions'] = $this->toString($this->params['extensions']);
             return false;
         }
         $extension = mb_strtolower($input->extension, 'utf-8');
         $input = $input->tempName;
     } elseif (is_string($input)) {
         if (!($extension = strtolower(pathinfo($input, PATHINFO_EXTENSION)))) {
             $this->params['extensions'] = $this->toString($this->params['extensions']);
             return false;
         }
         //$extension = $extension['extension'];
     } else {
         throw new ValidateException(ValidateException::UNKNOWN_VAR, ['name' => 'input']);
     }
     if ($this->params['checkExtensionByMimeType']) {
         $mimeType = \rock\helpers\FileHelper::getMimeType($input);
         if ($mimeType === null) {
             $this->params['extensions'] = $this->toString($this->params['extensions']);
             return false;
         }
         $extensionsByMimeType = \rock\helpers\FileHelper::getExtensionsByMimeType($mimeType);
         if (!in_array($extension, $extensionsByMimeType, true)) {
             $this->params['extensions'] = $this->toString($this->params['extensions']);
             return false;
         }
     }
     if (!in_array($extension, $this->toArray($this->params['extensions']), true)) {
         $this->params['extensions'] = $this->toString($this->params['extensions']);
         return false;
     }
     return true;
 }