Example #1
0
 private function extractContent($downloadPath, $path)
 {
     $extractDirectory = sys_get_temp_dir() . DIRECTORY_SEPARATOR . uniqid('zip-extract');
     FileSystem::createDirectory($extractDirectory, 0777);
     FileSystem::emptyDirectory($path);
     if (defined('PHP_WINDOWS_VERSION_BUILD')) {
         $this->extractContentWindows($downloadPath, $extractDirectory);
     } else {
         $this->extractContentUnix($downloadPath, $extractDirectory);
     }
     // When there was only one directory in the zip, we extract the content out of it.
     $files = FileSystem::getDirectoryContent($extractDirectory);
     if (count($files) === 1 && is_dir(key($files))) {
         $files = FileSystem::getDirectoryContent(key($files));
     }
     foreach ($files as $file) {
         $file = (string) $file;
         FileSystem::rename($file, $path . '/' . basename($file));
     }
     FileSystem::removeDirectory($extractDirectory);
 }