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

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smabpro.picotech.app/public_html/vendor/maatwebsite/excel/src/   drwxr-xr-x
Free 28.58 GB of 117.98 GB (24.22%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace Maatwebsite\Excel;

use 
Illuminate\Foundation\Bus\PendingDispatch;
use 
Illuminate\Support\Collection;
use 
Illuminate\Support\LazyCollection;
use 
Maatwebsite\Excel\Concerns\FromCollection;
use 
Maatwebsite\Excel\Concerns\FromQuery;
use 
Maatwebsite\Excel\Concerns\FromView;
use 
Maatwebsite\Excel\Concerns\WithCustomChunkSize;
use 
Maatwebsite\Excel\Concerns\WithCustomQuerySize;
use 
Maatwebsite\Excel\Concerns\WithMultipleSheets;
use 
Maatwebsite\Excel\Files\TemporaryFile;
use 
Maatwebsite\Excel\Files\TemporaryFileFactory;
use 
Maatwebsite\Excel\Jobs\AppendDataToSheet;
use 
Maatwebsite\Excel\Jobs\AppendPaginatedToSheet;
use 
Maatwebsite\Excel\Jobs\AppendQueryToSheet;
use 
Maatwebsite\Excel\Jobs\AppendViewToSheet;
use 
Maatwebsite\Excel\Jobs\CloseSheet;
use 
Maatwebsite\Excel\Jobs\QueueExport;
use 
Maatwebsite\Excel\Jobs\StoreQueuedExport;
use 
Traversable;

class 
QueuedWriter
{
    
/**
     * @var Writer
     */
    
protected $writer;

    
/**
     * @var int
     */
    
protected $chunkSize;

    
/**
     * @var TemporaryFileFactory
     */
    
protected $temporaryFileFactory;

    
/**
     * @param  Writer  $writer
     * @param  TemporaryFileFactory  $temporaryFileFactory
     */
    
public function __construct(Writer $writerTemporaryFileFactory $temporaryFileFactory)
    {
        
$this->writer               $writer;
        
$this->chunkSize            config('excel.exports.chunk_size'1000);
        
$this->temporaryFileFactory $temporaryFileFactory;
    }

    
/**
     * @param  object  $export
     * @param  string  $filePath
     * @param  string  $disk
     * @param  string|null  $writerType
     * @param  array|string  $diskOptions
     * @return \Illuminate\Foundation\Bus\PendingDispatch
     */
    
public function store($exportstring $filePathstring $disk nullstring $writerType null$diskOptions = [])
    {
        
$extension     pathinfo($filePathPATHINFO_EXTENSION);
        
$temporaryFile $this->temporaryFileFactory->make($extension);

        
$jobs $this->buildExportJobs($export$temporaryFile$writerType);

        
$jobs->push(new StoreQueuedExport(
            
$temporaryFile,
            
$filePath,
            
$disk,
            
$diskOptions
        
));

        return new 
PendingDispatch(
            (new 
QueueExport($export$temporaryFile$writerType))->chain($jobs->toArray())
        );
    }

    
/**
     * @param  object  $export
     * @param  TemporaryFile  $temporaryFile
     * @param  string  $writerType
     * @return Collection
     */
    
private function buildExportJobs($exportTemporaryFile $temporaryFilestring $writerType): Collection
    
{
        
$sheetExports = [$export];
        if (
$export instanceof WithMultipleSheets) {
            
$sheetExports $export->sheets();
        }

        
$jobs = new Collection;
        foreach (
$sheetExports as $sheetIndex => $sheetExport) {
            if (
$sheetExport instanceof FromCollection) {
                
$jobs $jobs->merge($this->exportCollection($sheetExport$temporaryFile$writerType$sheetIndex));
            } elseif (
$sheetExport instanceof FromQuery) {
                
$jobs $jobs->merge($this->exportQuery($sheetExport$temporaryFile$writerType$sheetIndex));
            } elseif (
$sheetExport instanceof FromView) {
                
$jobs $jobs->merge($this->exportView($sheetExport$temporaryFile$writerType$sheetIndex));
            }

            
$jobs->push(new CloseSheet($sheetExport$temporaryFile$writerType$sheetIndex));
        }

        return 
$jobs;
    }

    
/**
     * @param  FromCollection  $export
     * @param  TemporaryFile  $temporaryFile
     * @param  string  $writerType
     * @param  int  $sheetIndex
     * @return Collection|LazyCollection
     */
    
private function exportCollection(
        
FromCollection $export,
        
TemporaryFile $temporaryFile,
        
string $writerType,
        
int $sheetIndex
    
) {
        return 
$export
            
->collection()
            ->
chunk($this->getChunkSize($export))
            ->
map(function ($rows) use ($writerType$temporaryFile$sheetIndex$export) {
                if (
$rows instanceof Traversable) {
                    
$rows iterator_to_array($rows);
                }

                return new 
AppendDataToSheet(
                    
$export,
                    
$temporaryFile,
                    
$writerType,
                    
$sheetIndex,
                    
$rows
                
);
            });
    }

    
/**
     * @param  FromQuery  $export
     * @param  TemporaryFile  $temporaryFile
     * @param  string  $writerType
     * @param  int  $sheetIndex
     * @return Collection
     */
    
private function exportQuery(
        
FromQuery $export,
        
TemporaryFile $temporaryFile,
        
string $writerType,
        
int $sheetIndex
    
): Collection {
        
$query $export->query();

        if (
$query instanceof \Laravel\Scout\Builder) {
            return 
$this->exportScout($export$temporaryFile$writerType$sheetIndex);
        }

        
$count $export instanceof WithCustomQuerySize $export->querySize() : $query->count();
        
$spins ceil($count $this->getChunkSize($export));

        
$jobs = new Collection();

        for (
$page 1$page <= $spins$page++) {
            
$jobs->push(new AppendQueryToSheet(
                
$export,
                
$temporaryFile,
                
$writerType,
                
$sheetIndex,
                
$page,
                
$this->getChunkSize($export)
            ));
        }

        return 
$jobs;
    }

    
/**
     * @param  FromQuery  $export
     * @param  TemporaryFile  $temporaryFile
     * @param  string  $writerType
     * @param  int  $sheetIndex
     * @return Collection
     */
    
private function exportScout(
        
FromQuery $export,
        
TemporaryFile $temporaryFile,
        
string $writerType,
        
int $sheetIndex
    
): Collection {
        
$jobs = new Collection();

        
$chunk $export->query()->paginate($this->getChunkSize($export));
        
// Append first page
        
$jobs->push(new AppendDataToSheet(
            
$export,
            
$temporaryFile,
            
$writerType,
            
$sheetIndex,
            
$chunk->items()
        ));

        
// Append rest of pages
        
for ($page 2$page <= $chunk->lastPage(); $page++) {
            
$jobs->push(new AppendPaginatedToSheet(
                
$export,
                
$temporaryFile,
                
$writerType,
                
$sheetIndex,
                
$page,
                
$this->getChunkSize($export)
            ));
        }

        return 
$jobs;
    }

    
/**
     * @param  FromView  $export
     * @param  TemporaryFile  $temporaryFile
     * @param  string  $writerType
     * @param  int  $sheetIndex
     * @return Collection
     */
    
private function exportView(
        
FromView $export,
        
TemporaryFile $temporaryFile,
        
string $writerType,
        
int $sheetIndex
    
): Collection {
        
$jobs = new Collection();
        
$jobs->push(new AppendViewToSheet(
            
$export,
            
$temporaryFile,
            
$writerType,
            
$sheetIndex
        
));

        return 
$jobs;
    }

    
/**
     * @param  object|WithCustomChunkSize  $export
     * @return int
     */
    
private function getChunkSize($export): int
    
{
        if (
$export instanceof WithCustomChunkSize) {
            return 
$export->chunkSize();
        }

        return 
$this->chunkSize;
    }
}

:: 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.0039 ]--