Manage file uploads and media — handles validation, storage via any filesystem driver, URL generation, and polymorphic entity attachments.
composer require marko/mediause Marko\Media\Contracts\MediaManagerInterface;
use Marko\Media\Value\UploadedFile;
class PostController
{
public function __construct(
private MediaManagerInterface $mediaManager,
) {}
public function uploadAvatar(): void
{
$file = new UploadedFile(
name: $_FILES['avatar']['name'],
tmpPath: $_FILES['avatar']['tmp_name'],
mimeType: $_FILES['avatar']['type'],
size: $_FILES['avatar']['size'],
extension: pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION),
);
$media = $this->mediaManager->upload($file);
}
}Full usage, API reference, and examples: marko/media