Linux anchor 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
Apache/2.4.18 (Ubuntu)
Server IP : 10.10.100.4 & Your IP : 216.73.216.195
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
owncloud-prm /
updater /
src /
Utils /
Delete
Unzip
Name
Size
Permission
Date
Action
AppManager.php
2.65
KB
-rw-r--r--
2018-04-19 18:16
Checkpoint.php
6.13
KB
-rw-r--r--
2018-04-19 18:16
Collection.php
1.48
KB
-rw-r--r--
2018-04-19 18:16
ConfigReader.php
2.42
KB
-rw-r--r--
2018-04-19 18:16
DocLink.php
1.54
KB
-rw-r--r--
2018-04-19 18:16
Feed.php
2.53
KB
-rw-r--r--
2018-04-19 18:16
Fetcher.php
5.18
KB
-rw-r--r--
2018-04-19 18:16
FilesystemHelper.php
4.87
KB
-rw-r--r--
2018-04-19 18:16
Locator.php
5.01
KB
-rw-r--r--
2018-04-19 18:16
OccRunner.php
4.25
KB
-rw-r--r--
2018-04-19 18:16
Registry.php
1.59
KB
-rw-r--r--
2018-04-19 18:16
ZipExtractor.php
3.57
KB
-rw-r--r--
2018-04-19 18:16
Save
Rename
<?php /** * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @copyright Copyright (c) 2015, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License, version 3, * along with this program. If not, see <http://www.gnu.org/licenses/> * */ namespace Owncloud\Updater\Utils; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Process\Process; use Symfony\Component\Process\ProcessUtils; use ZipArchive; /** * Class ZipExtractor * * @package Owncloud\Updater\Utils */ class ZipExtractor { protected $file; protected $path; /** @var OutputInterface */ protected $output; /** * @param string $file * @param string $path * @param OutputInterface $output */ public function __construct($file, $path, OutputInterface $output = null){ $this->file = $file; $this->path = $path; if (!is_null($output)){ $this->output = $output; } } /** * @return bool */ public function extract(){ if ($this->extractShell()){ return true; } if (!class_exists('ZipArchive')){ throw new \RuntimeException("Could not decompress the archive, enable the PHP zip extension or install unzip."); } return $this->extractZipArchive(); } /** * @return bool */ private function extractShell(){ $command = 'unzip ' . ProcessUtils::escapeArgument($this->file) . ' -d ' . ProcessUtils::escapeArgument($this->path) . ' && chmod -R u+w ' . ProcessUtils::escapeArgument($this->path); $process = new Process($command); $process->setTimeout(null); $process->run(); if ($this->output) { $this->output->writeln($process->getErrorOutput()); } return $process->isSuccessful(); } /** * @return bool */ private function extractZipArchive(){ $zipArchive = new ZipArchive(); if (true !== ($exitCode = $zipArchive->open($this->file))){ throw new \UnexpectedValueException($this->getErrorMessage($exitCode), $exitCode); } if (true !== $zipArchive->extractTo($this->path)){ throw new \RuntimeException("There was an error extracting the ZIP file. Corrupt file?"); } $zipArchive->close(); return true; } /** * @param int $exitCode * @return string */ protected function getErrorMessage($exitCode){ switch ($exitCode){ case ZipArchive::ER_EXISTS: return sprintf("File '%s' already exists.", $this->file); case ZipArchive::ER_INCONS: return sprintf("Zip archive '%s' is inconsistent.", $this->file); case ZipArchive::ER_INVAL: return sprintf("Invalid argument (%s)", $this->file); case ZipArchive::ER_MEMORY: return sprintf("Malloc failure (%s)", $this->file); case ZipArchive::ER_NOENT: return sprintf("No such zip file: '%s'", $this->file); case ZipArchive::ER_NOZIP: return sprintf("'%s' is not a zip archive.", $this->file); case ZipArchive::ER_OPEN: return sprintf("Can't open zip file: %s", $this->file); case ZipArchive::ER_READ: return sprintf("Zip read error (%s)", $this->file); case ZipArchive::ER_SEEK: return sprintf("Zip seek error (%s)", $this->file); default: return sprintf("'%s' is not a valid zip archive, got error code: %s", $this->file, $exitCode); } } }