add icon uploads

This commit is contained in:
Yisroel Baum 2026-06-02 10:19:28 +03:00
parent 0f3bb6de6b
commit 97ecbebb9e
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
8 changed files with 286 additions and 1 deletions

View file

@ -0,0 +1,44 @@
<?php
namespace App\Shared\Files;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
class LaravelFileUploader implements FileUploader
{
public function upload(FileToUpload $file, string $folder): string
{
$path = $folder . '/' . Str::random(40) . $this->extensionFor($file);
Storage::disk('public')->put($path, $file->getContents());
return $path;
}
public function url(string $path): string
{
return Storage::disk('public')->url($path);
}
private function extensionFor(FileToUpload $file): string
{
$mimeExtensions = [
'image/jpeg' => '.jpg',
'image/png' => '.png',
'image/webp' => '.webp',
];
if (isset($mimeExtensions[$file->getMimeType()])) {
return $mimeExtensions[$file->getMimeType()];
}
$originalExtension = pathinfo(
$file->getOriginalName(),
PATHINFO_EXTENSION,
);
if ($originalExtension !== '') {
return '.' . $originalExtension;
}
return '';
}
}