simedkom/app/Filament/Support/MediaDataUri.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));
}
}