403Webshell
Server IP : 192.64.118.117  /  Your IP : 3.148.113.167
Web Server : LiteSpeed
System : Linux premium56.web-hosting.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64
User : thecgapy ( 1160)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/thecgapy/mobilecreationz.com/wp-content/plugins/duplicator/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/thecgapy/mobilecreationz.com/wp-content/plugins/duplicator/classes/package.archive.zip.php
<?php
if ( ! defined( 'DUPLICATOR_VERSION' ) ) exit; // Exit if accessed directly
require_once (DUPLICATOR_PLUGIN_PATH . 'classes/package.archive.php');

/**
 *  DUP_ZIP
 *  Creates a zip file using the built in PHP ZipArchive class
 */
class DUP_Zip  extends DUP_Archive 
{
	//PRIVATE 
	private static $compressDir;	
	private static $countDirs  = 0;
	private static $countFiles = 0;
	private static $sqlPath;
	private static $zipPath;
	private static $zipFileSize;
	private static $zipArchive;
	
	private static $limitItems = 0;
	private static $networkFlush = false;
	private static $scanReport;
	
	/**
     *  CREATE
     *  Creates the zip file and adds the SQL file to the archive */
	static public function Create(DUP_Archive $archive) 
	{
		try 
		{
			$timerAllStart = DUP_Util::GetMicrotime();
			$package_zip_flush = DUP_Settings::Get('package_zip_flush');
			
			self::$compressDir		= rtrim(DUP_Util::SafePath($archive->PackDir), '/');
			self::$sqlPath			= DUP_Util::SafePath("{$archive->Package->StorePath}/{$archive->Package->Database->File}");
			self::$zipPath			= DUP_Util::SafePath("{$archive->Package->StorePath}/{$archive->File}");
			self::$zipArchive		= new ZipArchive();
			self::$networkFlush		= empty($package_zip_flush) ? false : $package_zip_flush;
			
			$filterDirs = empty($archive->FilterDirs) ? 'not set' : $archive->FilterDirs;
			$filterExts = empty($archive->FilterExts) ? 'not set' : $archive->FilterExts;
			$filterOn   = ($archive->FilterOn) ? 'ON' : 'OFF';
			$filterDirsFormat = rtrim(str_replace(';', "\n      ", $filterDirs));
			$lastDirSuccess = self::$compressDir;
			
			//LOAD SCAN REPORT
			$json = file_get_contents(DUPLICATOR_SSDIR_PATH_TMP . "/{$archive->Package->NameHash}_scan.json");
			self::$scanReport = json_decode($json);
			
			DUP_Log::Info("\n********************************************************************************");
			DUP_Log::Info("ARCHIVE (ZIP):");
			DUP_Log::Info("********************************************************************************");
			$isZipOpen = (self::$zipArchive->open(self::$zipPath, ZIPARCHIVE::CREATE) === TRUE);
			if (! $isZipOpen){
				DUP_Log::Error("Cannot open zip file with PHP ZipArchive.", "Path location [" . self::$zipPath . "]");
			}
            DUP_Log::Info("ARCHIVE DIR:  " . self::$compressDir);
            DUP_Log::Info("ARCHIVE FILE: " . basename(self::$zipPath));
			DUP_Log::Info("FILTERS: *{$filterOn}*");
			DUP_Log::Info("DIRS: {$filterDirsFormat}");
			DUP_Log::Info("EXTS:  {$filterExts}");
			
			DUP_Log::Info("----------------------------------------");
			DUP_Log::Info("COMPRESSING");
			DUP_Log::Info("SIZE:\t" . self::$scanReport->ARC->Size);
			DUP_Log::Info("STATS:\tDirs " . self::$scanReport->ARC->DirCount . " | Files " . self::$scanReport->ARC->FileCount);
			
			//ADD SQL 
			$isSQLInZip = self::$zipArchive->addFile(self::$sqlPath, "database.sql");
			if ($isSQLInZip)  {
				DUP_Log::Info("SQL ADDED: " . basename(self::$sqlPath));
			} else {
				DUP_Log::Error("Unable to add database.sql to archive.", "SQL File Path [" . self::$sqlath . "]");
			}
			self::$zipArchive->close();
			self::$zipArchive->open(self::$zipPath, ZipArchive::CREATE);
			
			//ZIP DIRECTORIES
			$info = '';
			foreach(self::$scanReport->ARC->Dirs as $dir)
			{
				if (is_readable($dir) && self::$zipArchive->addEmptyDir(ltrim(str_replace(self::$compressDir, '', $dir), '/'))) 
				{
					self::$countDirs++;
					$lastDirSuccess = $dir;
				} 
				else 
				{
					//Don't warn when dirtory is the root path
					if (strcmp($dir, rtrim(self::$compressDir, '/')) != 0) {
						$dir_path = strlen($dir) ? "[{$dir}]" : "[Read Error] - last successful read was: [{$lastDirSuccess}]";
						$info .= "DIR: {$dir_path}\n";
					}
				}
			}
			
			//LOG Unreadable DIR info
			if (strlen($info)) 
			{
				DUP_Log::Info("\nWARNING: Unable to zip directories:");
				DUP_Log::Info($info);
			}
			
			
		
			/* ZIP FILES: Network Flush
			*  This allows the process to not timeout on fcgi 
			*  setups that need a response every X seconds */
			$info = '';
			if (self::$networkFlush) 
			{
				foreach(self::$scanReport->ARC->Files as $file) 
				{
					if (is_readable($file) && self::$zipArchive->addFile($file, ltrim(str_replace(self::$compressDir, '', $file), '/'))) 
					{
						self::$limitItems++;
						self::$countFiles++;
					} 
					else 
					{
						$info .= "FILE: [{$file}]\n";
					}
					//Trigger a flush to the web server after so many files have been loaded.
					if(self::$limitItems > DUPLICATOR_ZIP_FLUSH_TRIGGER) 
					{
						$sumItems = (self::$countDirs + self::$countFiles);
						self::$zipArchive->close();
						self::$zipArchive->open(self::$zipPath);
						self::$limitItems = 0;
						DUP_Util::FcgiFlush();
						DUP_Log::Info("Items archived [{$sumItems}] flushing response.");
					}
				}
			} 
			//Normal
			else 
			{
				foreach(self::$scanReport->ARC->Files as $file) 
				{
					if (is_readable($file) && self::$zipArchive->addFile($file, ltrim(str_replace(self::$compressDir, '', $file), '/'))) {
						self::$countFiles++;
					} else {
						$info .= "FILE: [{$file}]\n";
					}
				}
			}
			
			//LOG Unreadable FILE info
			if (strlen($info)) 
			{
				DUP_Log::Info("\nWARNING: Unable to zip files:");
				DUP_Log::Info($info);
				unset($info);
			}
			
			DUP_Log::Info(print_r(self::$zipArchive, true));

			//--------------------------------
			//LOG FINAL RESULTS
			DUP_Util::FcgiFlush();
            $zipCloseResult = self::$zipArchive->close();
			($zipCloseResult) 
				? DUP_Log::Info("COMPRESSION RESULT: '{$zipCloseResult}'")
				: DUP_Log::Error("ZipArchive close failure.", "This hosted server may have a disk quota limit.\nCheck to make sure this archive file can be stored.");
		
            $timerAllEnd = DUP_Util::GetMicrotime();
            $timerAllSum = DUP_Util::ElapsedTime($timerAllEnd, $timerAllStart);

			
			self::$zipFileSize = @filesize(self::$zipPath);
			DUP_Log::Info("COMPRESSED SIZE: " . DUP_Util::ByteSize(self::$zipFileSize));
            DUP_Log::Info("ARCHIVE RUNTIME: {$timerAllSum}");
			DUP_Log::Info("MEMORY STACK: " . DUP_Server::GetPHPMemory());
        } 
        catch (Exception $e) {
			DUP_Log::Error("Runtime error in package.archive.zip.php constructor.", "Exception: {$e}");
        }
	}
	
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit