!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)

/var/www/html/dokan/script/vendor/laravel/framework/src/Illuminate/Filesystem/   drwxrwxrwx
Free 13.16 GB of 57.97 GB (22.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     FilesystemManager.php (9.34 KB)      -rwxrwxrwx
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Illuminate\Filesystem;

use 
Aws\S3\S3Client;
use 
Closure;
use 
Illuminate\Contracts\Filesystem\Factory as FactoryContract;
use 
Illuminate\Support\Arr;
use 
InvalidArgumentException;
use 
League\Flysystem\Adapter\Ftp as FtpAdapter;
use 
League\Flysystem\Adapter\Local as LocalAdapter;
use 
League\Flysystem\AdapterInterface;
use 
League\Flysystem\AwsS3v3\AwsS3Adapter as S3Adapter;
use 
League\Flysystem\Cached\CachedAdapter;
use 
League\Flysystem\Cached\Storage\Memory as MemoryStore;
use 
League\Flysystem\Filesystem as Flysystem;
use 
League\Flysystem\FilesystemInterface;
use 
League\Flysystem\Sftp\SftpAdapter;

/**
 * @mixin \Illuminate\Contracts\Filesystem\Filesystem
 */
class FilesystemManager implements FactoryContract
{
    
/**
     * The application instance.
     *
     * @var \Illuminate\Contracts\Foundation\Application
     */
    
protected $app;

    
/**
     * The array of resolved filesystem drivers.
     *
     * @var array
     */
    
protected $disks = [];

    
/**
     * The registered custom driver creators.
     *
     * @var array
     */
    
protected $customCreators = [];

    
/**
     * Create a new filesystem manager instance.
     *
     * @param  \Illuminate\Contracts\Foundation\Application  $app
     * @return void
     */
    
public function __construct($app)
    {
        
$this->app $app;
    }

    
/**
     * Get a filesystem instance.
     *
     * @param  string|null  $name
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     */
    
public function drive($name null)
    {
        return 
$this->disk($name);
    }

    
/**
     * Get a filesystem instance.
     *
     * @param  string|null  $name
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     */
    
public function disk($name null)
    {
        
$name $name ?: $this->getDefaultDriver();

        return 
$this->disks[$name] = $this->get($name);
    }

    
/**
     * Get a default cloud filesystem instance.
     *
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     */
    
public function cloud()
    {
        
$name $this->getDefaultCloudDriver();

        return 
$this->disks[$name] = $this->get($name);
    }

    
/**
     * Attempt to get the disk from the local cache.
     *
     * @param  string  $name
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     */
    
protected function get($name)
    {
        return 
$this->disks[$name] ?? $this->resolve($name);
    }

    
/**
     * Resolve the given disk.
     *
     * @param  string  $name
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     *
     * @throws \InvalidArgumentException
     */
    
protected function resolve($name)
    {
        
$config $this->getConfig($name);

        if (empty(
$config['driver'])) {
            throw new 
InvalidArgumentException("Disk [{$name}] does not have a configured driver.");
        }

        
$name $config['driver'];

        if (isset(
$this->customCreators[$name])) {
            return 
$this->callCustomCreator($config);
        }

        
$driverMethod 'create'.ucfirst($name).'Driver';

        if (! 
method_exists($this$driverMethod)) {
            throw new 
InvalidArgumentException("Driver [{$name}] is not supported.");
        }

        return 
$this->{$driverMethod}($config);
    }

    
/**
     * Call a custom driver creator.
     *
     * @param  array  $config
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     */
    
protected function callCustomCreator(array $config)
    {
        
$driver $this->customCreators[$config['driver']]($this->app$config);

        if (
$driver instanceof FilesystemInterface) {
            return 
$this->adapt($driver);
        }

        return 
$driver;
    }

    
/**
     * Create an instance of the local driver.
     *
     * @param  array  $config
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     */
    
public function createLocalDriver(array $config)
    {
        
$permissions $config['permissions'] ?? [];

        
$links = ($config['links'] ?? null) === 'skip'
            
LocalAdapter::SKIP_LINKS
            
LocalAdapter::DISALLOW_LINKS;

        return 
$this->adapt($this->createFlysystem(new LocalAdapter(
            
$config['root'], $config['lock'] ?? LOCK_EX$links$permissions
        
), $config));
    }

    
/**
     * Create an instance of the ftp driver.
     *
     * @param  array  $config
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     */
    
public function createFtpDriver(array $config)
    {
        return 
$this->adapt($this->createFlysystem(
            new 
FtpAdapter($config), $config
        
));
    }

    
/**
     * Create an instance of the sftp driver.
     *
     * @param  array  $config
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     */
    
public function createSftpDriver(array $config)
    {
        return 
$this->adapt($this->createFlysystem(
            new 
SftpAdapter($config), $config
        
));
    }

    
/**
     * Create an instance of the Amazon S3 driver.
     *
     * @param  array  $config
     * @return \Illuminate\Contracts\Filesystem\Cloud
     */
    
public function createS3Driver(array $config)
    {
        
$s3Config $this->formatS3Config($config);

        
$root $s3Config['root'] ?? null;

        
$options $config['options'] ?? [];

        
$streamReads $config['stream_reads'] ?? false;

        return 
$this->adapt($this->createFlysystem(
            new 
S3Adapter(new S3Client($s3Config), $s3Config['bucket'], $root$options$streamReads), $config
        
));
    }

    
/**
     * Format the given S3 configuration with the default options.
     *
     * @param  array  $config
     * @return array
     */
    
protected function formatS3Config(array $config)
    {
        
$config += ['version' => 'latest'];

        if (! empty(
$config['key']) && ! empty($config['secret'])) {
            
$config['credentials'] = Arr::only($config, ['key''secret''token']);
        }

        return 
$config;
    }

    
/**
     * Create a Flysystem instance with the given adapter.
     *
     * @param  \League\Flysystem\AdapterInterface  $adapter
     * @param  array  $config
     * @return \League\Flysystem\FilesystemInterface
     */
    
protected function createFlysystem(AdapterInterface $adapter, array $config)
    {
        
$cache Arr::pull($config'cache');

        
$config Arr::only($config, ['visibility''disable_asserts''url''temporary_url']);

        if (
$cache) {
            
$adapter = new CachedAdapter($adapter$this->createCacheStore($cache));
        }

        return new 
Flysystem($adaptercount($config) > $config null);
    }

    
/**
     * Create a cache store instance.
     *
     * @param  mixed  $config
     * @return \League\Flysystem\Cached\CacheInterface
     *
     * @throws \InvalidArgumentException
     */
    
protected function createCacheStore($config)
    {
        if (
$config === true) {
            return new 
MemoryStore;
        }

        return new 
Cache(
            
$this->app['cache']->store($config['store']),
            
$config['prefix'] ?? 'flysystem',
            
$config['expire'] ?? null
        
);
    }

    
/**
     * Adapt the filesystem implementation.
     *
     * @param  \League\Flysystem\FilesystemInterface  $filesystem
     * @return \Illuminate\Contracts\Filesystem\Filesystem
     */
    
protected function adapt(FilesystemInterface $filesystem)
    {
        return new 
FilesystemAdapter($filesystem);
    }

    
/**
     * Set the given disk instance.
     *
     * @param  string  $name
     * @param  mixed  $disk
     * @return $this
     */
    
public function set($name$disk)
    {
        
$this->disks[$name] = $disk;

        return 
$this;
    }

    
/**
     * Get the filesystem connection configuration.
     *
     * @param  string  $name
     * @return array
     */
    
protected function getConfig($name)
    {
        return 
$this->app['config']["filesystems.disks.{$name}"] ?: [];
    }

    
/**
     * Get the default driver name.
     *
     * @return string
     */
    
public function getDefaultDriver()
    {
        return 
$this->app['config']['filesystems.default'];
    }

    
/**
     * Get the default cloud driver name.
     *
     * @return string
     */
    
public function getDefaultCloudDriver()
    {
        return 
$this->app['config']['filesystems.cloud'] ?? 's3';
    }

    
/**
     * Unset the given disk instances.
     *
     * @param  array|string  $disk
     * @return $this
     */
    
public function forgetDisk($disk)
    {
        foreach ((array) 
$disk as $diskName) {
            unset(
$this->disks[$diskName]);
        }

        return 
$this;
    }

    
/**
     * Disconnect the given disk and remove from local cache.
     *
     * @param  string|null  $name
     * @return void
     */
    
public function purge($name null)
    {
        
$name $name ?? $this->getDefaultDriver();

        unset(
$this->disks[$name]);
    }

    
/**
     * Register a custom driver creator Closure.
     *
     * @param  string  $driver
     * @param  \Closure  $callback
     * @return $this
     */
    
public function extend($driverClosure $callback)
    {
        
$this->customCreators[$driver] = $callback;

        return 
$this;
    }

    
/**
     * Dynamically call the default driver instance.
     *
     * @param  string  $method
     * @param  array  $parameters
     * @return mixed
     */
    
public function __call($method$parameters)
    {
        return 
$this->disk()->$method(...$parameters);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

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