'File has an incorrect extension', self::NOT_FOUND => 'File is not readable or does not exist', ]; /** * Returns true if and only if the file extension of $value is not included in the * set extension list * * @param string|array $value Real file to check for extension * @param array $file File data from \Laminas\File\Transfer\Transfer (optional) * @return bool */ public function isValid($value, $file = null) { $fileInfo = $this->getFileInfo($value, $file); // Is file readable ? if ( ! $this->getAllowNonExistentFile() && (empty($fileInfo['file']) || false === is_readable($fileInfo['file'])) ) { $this->error(self::NOT_FOUND); return false; } $this->setValue($fileInfo['filename']); $extension = substr($fileInfo['filename'], strrpos($fileInfo['filename'], '.') + 1); $extensions = $this->getExtension(); if ($this->getCase() && (! in_array($extension, $extensions))) { return true; } elseif (! $this->getCase()) { foreach ($extensions as $ext) { if (strtolower($ext) === strtolower($extension)) { $this->error(self::FALSE_EXTENSION); return false; } } return true; } $this->error(self::FALSE_EXTENSION); return false; } }