!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.57 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:     Writer.php (8.04 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Maatwebsite\Excel;

use 
Illuminate\Support\Arr;
use 
Maatwebsite\Excel\Concerns\WithBackgroundColor;
use 
Maatwebsite\Excel\Concerns\WithCustomValueBinder;
use 
Maatwebsite\Excel\Concerns\WithDefaultStyles;
use 
Maatwebsite\Excel\Concerns\WithEvents;
use 
Maatwebsite\Excel\Concerns\WithMultipleSheets;
use 
Maatwebsite\Excel\Concerns\WithProperties;
use 
Maatwebsite\Excel\Concerns\WithTitle;
use 
Maatwebsite\Excel\Events\BeforeExport;
use 
Maatwebsite\Excel\Events\BeforeWriting;
use 
Maatwebsite\Excel\Factories\WriterFactory;
use 
Maatwebsite\Excel\Files\RemoteTemporaryFile;
use 
Maatwebsite\Excel\Files\TemporaryFile;
use 
Maatwebsite\Excel\Files\TemporaryFileFactory;
use 
PhpOffice\PhpSpreadsheet\Cell\Cell;
use 
PhpOffice\PhpSpreadsheet\IOFactory;
use 
PhpOffice\PhpSpreadsheet\Spreadsheet;
use 
PhpOffice\PhpSpreadsheet\Style\Color;
use 
PhpOffice\PhpSpreadsheet\Style\Fill;

/** @mixin Spreadsheet */
class Writer
{
    use 
DelegatedMacroableHasEventBus;

    
/**
     * @var Spreadsheet
     */
    
protected $spreadsheet;

    
/**
     * @var object
     */
    
protected $exportable;

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

    
/**
     * @param  TemporaryFileFactory  $temporaryFileFactory
     */
    
public function __construct(TemporaryFileFactory $temporaryFileFactory)
    {
        
$this->temporaryFileFactory $temporaryFileFactory;

        
$this->setDefaultValueBinder();
    }

    
/**
     * @param  object  $export
     * @param  string  $writerType
     * @return TemporaryFile
     *
     * @throws \PhpOffice\PhpSpreadsheet\Exception
     */
    
public function export($exportstring $writerType): TemporaryFile
    
{
        
$this->open($export);

        
$sheetExports = [$export];
        if (
$export instanceof WithMultipleSheets) {
            
$sheetExports $export->sheets();
        }

        foreach (
$sheetExports as $sheetExport) {
            
$this->addNewSheet()->export($sheetExport);
        }

        return 
$this->write($export$this->temporaryFileFactory->makeLocal(nullstrtolower($writerType)), $writerType);
    }

    
/**
     * @param  object  $export
     * @return $this
     */
    
public function open($export)
    {
        
$this->exportable $export;

        if (
$export instanceof WithEvents) {
            
$this->registerListeners($export->registerEvents());
        }

        
$this->exportable  $export;
        
$this->spreadsheet = new Spreadsheet;
        
$this->spreadsheet->disconnectWorksheets();

        if (
$export instanceof WithCustomValueBinder) {
            
Cell::setValueBinder($export);
        }

        
$this->handleDocumentProperties($export);

        if (
$export instanceof WithBackgroundColor) {
            
$defaultStyle    $this->spreadsheet->getDefaultStyle();
            
$backgroundColor $export->backgroundColor();

            if (
is_string($backgroundColor)) {
                
$defaultStyle->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB($backgroundColor);
            }

            if (
is_array($backgroundColor)) {
                
$defaultStyle->applyFromArray(['fill' => $backgroundColor]);
            }

            if (
$backgroundColor instanceof Color) {
                
$defaultStyle->getFill()->setFillType(Fill::FILL_SOLID)->setStartColor($backgroundColor);
            }
        }

        if (
$export instanceof WithDefaultStyles) {
            
$defaultStyle $this->spreadsheet->getDefaultStyle();
            
$styles       $export->defaultStyles($defaultStyle);

            if (
is_array($styles)) {
                
$defaultStyle->applyFromArray($styles);
            }
        }

        
$this->raise(new BeforeExport($this$this->exportable));

        return 
$this;
    }

    
/**
     * @param  TemporaryFile  $tempFile
     * @param  string  $writerType
     * @return Writer
     *
     * @throws \PhpOffice\PhpSpreadsheet\Reader\Exception
     */
    
public function reopen(TemporaryFile $tempFilestring $writerType)
    {
        
$reader            IOFactory::createReader($writerType);
        
$this->spreadsheet $reader->load($tempFile->sync()->getLocalPath());

        return 
$this;
    }

    
/**
     * @param  object  $export
     * @param  TemporaryFile  $temporaryFile
     * @param  string  $writerType
     * @return TemporaryFile
     *
     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
     * @throws \PhpOffice\PhpSpreadsheet\Exception
     */
    
public function write($exportTemporaryFile $temporaryFilestring $writerType): TemporaryFile
    
{
        
$this->exportable $export;

        
$this->spreadsheet->setActiveSheetIndex(0);

        
$this->raise(new BeforeWriting($this$this->exportable));

        
$writer WriterFactory::make(
            
$writerType,
            
$this->spreadsheet,
            
$export
        
);

        if (
$temporaryFile instanceof RemoteTemporaryFile && !$temporaryFile->existsLocally()) {
            
$temporaryFile resolve(TemporaryFileFactory::class)
                ->
makeLocal(Arr::last(explode('/'$temporaryFile->getLocalPath())));
        }

        
$writer->save(
            
$temporaryFile->getLocalPath()
        );

        if (
$temporaryFile instanceof RemoteTemporaryFile) {
            
$temporaryFile->updateRemote();
            
$temporaryFile->deleteLocalCopy();
        }

        
$this->clearListeners();
        
$this->spreadsheet->disconnectWorksheets();
        unset(
$this->spreadsheet);

        return 
$temporaryFile;
    }

    
/**
     * @param  int|null  $sheetIndex
     * @return Sheet
     *
     * @throws \PhpOffice\PhpSpreadsheet\Exception
     */
    
public function addNewSheet(int $sheetIndex null)
    {
        return new 
Sheet($this->spreadsheet->createSheet($sheetIndex));
    }

    
/**
     * @return Spreadsheet
     */
    
public function getDelegate()
    {
        return 
$this->spreadsheet;
    }

    
/**
     * @return $this
     */
    
public function setDefaultValueBinder()
    {
        
Cell::setValueBinder(
            
app(config('excel.value_binder.default'DefaultValueBinder::class))
        );

        return 
$this;
    }

    
/**
     * @param  int  $sheetIndex
     * @return Sheet
     *
     * @throws \PhpOffice\PhpSpreadsheet\Exception
     */
    
public function getSheetByIndex(int $sheetIndex)
    {
        return new 
Sheet($this->getDelegate()->getSheet($sheetIndex));
    }

    
/**
     * @param  string  $concern
     * @return bool
     */
    
public function hasConcern($concern): bool
    
{
        return 
$this->exportable instanceof $concern;
    }

    
/**
     * @param  object  $export
     */
    
protected function handleDocumentProperties($export)
    {
        
$properties config('excel.exports.properties', []);

        if (
$export instanceof WithProperties) {
            
$properties array_merge($properties$export->properties());
        }

        if (
$export instanceof WithTitle) {
            
$properties array_merge($properties, ['title' => $export->title()]);
        }

        
$props $this->spreadsheet->getProperties();

        foreach (
array_filter($properties) as $property => $value) {
            switch (
$property) {
                case 
'title':
                    
$props->setTitle($value);
                    break;
                case 
'description':
                    
$props->setDescription($value);
                    break;
                case 
'creator':
                    
$props->setCreator($value);
                    break;
                case 
'lastModifiedBy':
                    
$props->setLastModifiedBy($value);
                    break;
                case 
'subject':
                    
$props->setSubject($value);
                    break;
                case 
'keywords':
                    
$props->setKeywords($value);
                    break;
                case 
'category':
                    
$props->setCategory($value);
                    break;
                case 
'manager':
                    
$props->setManager($value);
                    break;
                case 
'company':
                    
$props->setCompany($value);
                    break;
            }
        }
    }
}

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