28 lines
601 B
PHP
28 lines
601 B
PHP
<?php
|
|
|
|
namespace App\Filament\Support;
|
|
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Spatie\MediaLibrary\MediaCollections\Models\Media;
|
|
|
|
class MediaDataUri
|
|
{
|
|
public static function fromMedia(?Media $media): ?string
|
|
{
|
|
if (! $media) {
|
|
return null;
|
|
}
|
|
|
|
$disk = Storage::disk($media->disk);
|
|
$path = $media->getPathRelativeToRoot();
|
|
|
|
if (! $disk->exists($path)) {
|
|
return null;
|
|
}
|
|
|
|
$mime = $media->mime_type ?: 'application/octet-stream';
|
|
|
|
return 'data:'.$mime.';base64,'.base64_encode($disk->get($path));
|
|
}
|
|
}
|