/** * Check if the file must be accepted, or not * * @param \SplFileInfo $archive * @return bool */ public function validate(\SplFileInfo $archive) { $zip = new \ZipArchive(); $pathname = $archive->getPathname(); $result = new ValidationResult(); $open = $zip->open($pathname, \ZipArchive::CHECKCONS); if (true === $open) { $result->setValid(true); } else { switch ((int) $open) { case \ZipArchive::ER_NOZIP: $result->setMessage('Not a zip archive:' . $pathname); break; case \ZipArchive::ER_INCONS: $result->setMessage('Zip archive inconsistent:' . $pathname); break; case \ZipArchive::ER_CRC: $result->setMessage('CRC error:' . $pathname); break; case \ZipArchive::ER_OPEN: $result->setMessage('Can\'t open file:' . $pathname); break; } } return $result; }