Compare commits

...

2 Commits

Author SHA1 Message Date
Mekan1206
ab3e69e831 WIP 2026-02-18 04:23:36 +05:00
Mekan1206
18401b908f WIP 2026-02-18 04:20:05 +05:00
3 changed files with 50 additions and 19 deletions

View File

@@ -2,7 +2,6 @@
namespace App\Models\Ecommerce\Product\Product\Concerns; namespace App\Models\Ecommerce\Product\Product\Concerns;
use Illuminate\Support\Str;
use Spatie\Image\Manipulations; use Spatie\Image\Manipulations;
use Spatie\MediaLibrary\MediaCollections\Models\Media; use Spatie\MediaLibrary\MediaCollections\Models\Media;
@@ -22,24 +21,26 @@ trait ProductMedia
*/ */
public function registerMediaConversions(?Media $media = null): void public function registerMediaConversions(?Media $media = null): void
{ {
$conversions = [ $this->addMediaConversion('thumb200x200')
'thumb200x200' => [200, 200], ->fit(Manipulations::FIT_CONTAIN, 200, 200);
'thumb400x400' => [400, 400],
'thumb720x720' => [720, 720],
'thumb800x800' => [800, 800],
'thumb1200x1200' => [1200, 1200],
'thumb288x431' => [288, 431],
'thumb270x350' => [270, 350],
];
foreach ($conversions as $name => [$width, $height]) { $this->addMediaConversion('thumb400x400')
$this->addMediaConversion($name) ->fit(Manipulations::FIT_CONTAIN, 400, 400);
->fit(Manipulations::FIT_CONTAIN, $width, $height)
->useFileName(function (Media $media) use ($name) { $this->addMediaConversion('thumb720x720')
// generate short random name for the conversion ->fit(Manipulations::FIT_CONTAIN, 720, 720);
return Str::random(12) . '--' . $name . '.' . $media->getClientOriginalExtension();
}); $this->addMediaConversion('thumb800x800')
} ->fit(Manipulations::FIT_CONTAIN, 800, 800);
$this->addMediaConversion('thumb1200x1200')
->fit(Manipulations::FIT_CONTAIN, 1200, 1200);
$this->addMediaConversion('thumb288x431')
->fit(Manipulations::FIT_CONTAIN, 288, 431);
$this->addMediaConversion('thumb270x350')
->fit(Manipulations::FIT_CONTAIN, 270, 350);
} }
/** /**

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Support;
use Spatie\MediaLibrary\Support\FileNamer\FileNamer;
use Spatie\MediaLibrary\Conversions\Conversion;
use Illuminate\Support\Str;
class ShortFileNamer extends FileNamer
{
/**
* Keep the original file name exactly as it was uploaded.
*/
public function originalFileName(string $fileName): string
{
return pathinfo($fileName, PATHINFO_FILENAME);
}
/**
*
*/
public function conversionFileName(string $fileName, Conversion $conversion): string
{
return Str::random(12);
}
public function responsiveFileName(string $fileName): string
{
return 'res';
}
}

View File

@@ -58,7 +58,7 @@ return [
/* /*
* This is the class that is responsible for naming generated files. * This is the class that is responsible for naming generated files.
*/ */
'file_namer' => Spatie\MediaLibrary\Support\FileNamer\DefaultFileNamer::class, 'file_namer' => App\Support\ShortFileNamer::class,
/* /*
* The class that contains the strategy for determining a media file's path. * The class that contains the strategy for determining a media file's path.