!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/uploads/script/vendor/intervention/image/src/Intervention/Image/   drwxr-xr-x
Free 13.27 GB of 57.97 GB (22.89%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     AbstractDecoder.php (8.3 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Intervention\Image;

use 
GuzzleHttp\Psr7\Stream;
use 
Intervention\Image\Exception\NotReadableException;
use 
Psr\Http\Message\StreamInterface;

abstract class 
AbstractDecoder
{
    
/**
     * Initiates new image from path in filesystem
     *
     * @param  string $path
     * @return \Intervention\Image\Image
     */
    
abstract public function initFromPath($path);

    
/**
     * Initiates new image from binary data
     *
     * @param  string $data
     * @return \Intervention\Image\Image
     */
    
abstract public function initFromBinary($data);

    
/**
     * Initiates new image from GD resource
     *
     * @param  Resource $resource
     * @return \Intervention\Image\Image
     */
    
abstract public function initFromGdResource($resource);

    
/**
     * Initiates new image from Imagick object
     *
     * @param \Imagick $object
     * @return \Intervention\Image\Image
     */
    
abstract public function initFromImagick(\Imagick $object);

    
/**
     * Buffer of input data
     *
     * @var mixed
     */
    
private $data;

    
/**
     * Creates new Decoder with data
     *
     * @param mixed $data
     */
    
public function __construct($data null)
    {
        
$this->data $data;
    }

    
/**
     * Init from given URL
     *
     * @param  string $url
     * @return \Intervention\Image\Image
     */
    
public function initFromUrl($url)
    {
        
        
$options = [
            
'http' => [
                
'method'=>"GET",
                
'header'=>"Accept-language: en\r\n".
                
"User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2\r\n"
          
]
        ];
        
        
$context  stream_context_create($options);
        

        if (
$data = @file_get_contents($urlfalse$context)) {
            return 
$this->initFromBinary($data);
        }

        throw new 
NotReadableException(
            
"Unable to init from given url (".$url.")."
        
);
    }

    
/**
     * Init from given stream
     *
     * @param StreamInterface|resource $stream
     * @return \Intervention\Image\Image
     */
    
public function initFromStream($stream)
    {
        if (!
$stream instanceof StreamInterface) {
            
$stream = new Stream($stream);
        }

        try {
            
$offset $stream->tell();
        } catch (
\RuntimeException $e) {
            
$offset 0;
        }

        
$shouldAndCanSeek $offset !== && $stream->isSeekable();

        if (
$shouldAndCanSeek) {
            
$stream->rewind();
        }

        try {
            
$data $stream->getContents();
        } catch (
\RuntimeException $e) {
            
$data null;
        }

        if (
$shouldAndCanSeek) {
            
$stream->seek($offset);
        }

        if (
$data) {
            return 
$this->initFromBinary($data);
        }

        throw new 
NotReadableException(
            
"Unable to init from given stream"
        
);
    }

    
/**
     * Determines if current source data is GD resource
     *
     * @return boolean
     */
    
public function isGdResource()
    {
        if (
is_resource($this->data)) {
            return (
get_resource_type($this->data) == 'gd');
        }

        return 
false;
    }

    
/**
     * Determines if current source data is Imagick object
     *
     * @return boolean
     */
    
public function isImagick()
    {
        return 
is_a($this->data'Imagick');
    }

    
/**
     * Determines if current source data is Intervention\Image\Image object
     *
     * @return boolean
     */
    
public function isInterventionImage()
    {
        return 
is_a($this->data'\Intervention\Image\Image');
    }

    
/**
     * Determines if current data is SplFileInfo object
     *
     * @return boolean
     */
    
public function isSplFileInfo()
    {
        return 
is_a($this->data'SplFileInfo');
    }

    
/**
     * Determines if current data is Symfony UploadedFile component
     *
     * @return boolean
     */
    
public function isSymfonyUpload()
    {
        return 
is_a($this->data'Symfony\Component\HttpFoundation\File\UploadedFile');
    }

    
/**
     * Determines if current source data is file path
     *
     * @return boolean
     */
    
public function isFilePath()
    {
        if (
is_string($this->data)) {
            try {
                return 
is_file($this->data);
            } catch (
\Exception $e) {
                return 
false;
            }
        }

        return 
false;
    }

    
/**
     * Determines if current source data is url
     *
     * @return boolean
     */
    
public function isUrl()
    {
        return (bool) 
filter_var($this->dataFILTER_VALIDATE_URL);
    }

    
/**
     * Determines if current source data is a stream resource
     *
     * @return boolean
     */
    
public function isStream()
    {
        if (
$this->data instanceof StreamInterface) return true;
        if (!
is_resource($this->data)) return false;
        if (
get_resource_type($this->data) !== 'stream') return false;

        return 
true;
    }

    
/**
     * Determines if current source data is binary data
     *
     * @return boolean
     */
    
public function isBinary()
    {
        if (
is_string($this->data)) {
            
$mime finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), $this->data);
            return (
substr($mime04) != 'text' && $mime != 'application/x-empty');
        }

        return 
false;
    }

    
/**
     * Determines if current source data is data-url
     *
     * @return boolean
     */
    
public function isDataUrl()
    {
        
$data $this->decodeDataUrl($this->data);

        return 
is_null($data) ? false true;
    }

    
/**
     * Determines if current source data is base64 encoded
     *
     * @return boolean
     */
    
public function isBase64()
    {
        if (!
is_string($this->data)) {
            return 
false;
        }

        return 
base64_encode(base64_decode($this->data)) === str_replace(["\n""\r"], ''$this->data);
    }

    
/**
     * Initiates new Image from Intervention\Image\Image
     *
     * @param  Image $object
     * @return \Intervention\Image\Image
     */
    
public function initFromInterventionImage($object)
    {
        return 
$object;
    }

    
/**
     * Parses and decodes binary image data from data-url
     *
     * @param  string $data_url
     * @return string
     */
    
private function decodeDataUrl($data_url)
    {
        if (!
is_string($data_url)) {
            return 
null;
        }

        
$pattern "/^data:(?:image\/[a-zA-Z\-\.]+)(?:charset=\".+\")?;base64,(?P<data>.+)$/";
        
preg_match($pattern$data_url$matches);

        if (
is_array($matches) && array_key_exists('data'$matches)) {
            return 
base64_decode($matches['data']);
        }

        return 
null;
    }

    
/**
     * Initiates new image from mixed data
     *
     * @param  mixed $data
     * @return \Intervention\Image\Image
     */
    
public function init($data)
    {
        
$this->data $data;

        switch (
true) {

            case 
$this->isGdResource():
                return 
$this->initFromGdResource($this->data);

            case 
$this->isImagick():
                return 
$this->initFromImagick($this->data);

            case 
$this->isInterventionImage():
                return 
$this->initFromInterventionImage($this->data);

            case 
$this->isSplFileInfo():
                return 
$this->initFromPath($this->data->getRealPath());

            case 
$this->isBinary():
                return 
$this->initFromBinary($this->data);

            case 
$this->isUrl():
                return 
$this->initFromUrl($this->data);

            case 
$this->isStream():
                return 
$this->initFromStream($this->data);

            case 
$this->isDataUrl():
                return 
$this->initFromBinary($this->decodeDataUrl($this->data));

            case 
$this->isFilePath():
                return 
$this->initFromPath($this->data);

            
// isBase64 has to be after isFilePath to prevent false positives
            
case $this->isBase64():
                return 
$this->initFromBinary(base64_decode($this->data));

            default:
                throw new 
NotReadableException("Image source not readable");
        }
    }

    
/**
     * Decoder object transforms to string source data
     *
     * @return string
     */
    
public function __toString()
    {
        return (string) 
$this->data;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0057 ]--