m2code / file-manager
Flexible Laravel File Manager: upload, move, delete, thumbnail, blurhash, and more
v2.2.0
2026-07-10 15:51 UTC
Requires
- php: ^8.2
- ext-http: *
- ext-imagick: *
- illuminate/console: ^10|^11|^12|^13
- illuminate/filesystem: ^10|^11|^12|^13
- illuminate/http: ^10|^11|^12|^13
- illuminate/support: ^10|^11|^12|^13
- intervention/image: ^3
- kornrunner/blurhash: ^1.1
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^9.0|^10.0|^11.0
README
A modular, clean-architecture Laravel package for file management — upload, process, store, and serve files across multiple drivers and file types.
Requirements
- PHP 8.2+ / Laravel 10–13 / Imagick PHP extension /
intervention/imagev3
Installation
composer require m2code/file-manager
php artisan vendor:publish --tag=config --provider="M2code\FileManager\FileManagerServiceProvider"
Quick Start
use M2code\FileManager\Facades\FileManager; use M2code\FileManager\Facades\FileUrl; use M2code\FileManager\Application\Uploader\ImageUploader; // Save any file (UploadedFile, base64, SVG string) $result = FileManager::save($request->file('document'), 'uploads'); // Upload and process an image $result = ImageUploader::make() ->blur()->optimize('avif')->watermark() ->upload($request->file('photo'), 'uploads'); $result->variants->get('original')?->path; $result->blurhash; // Upload with encryption (requires FILE_MANAGER_ENCRYPTION_ENABLED=true) $result = ImageUploader::make() ->encrypted() ->upload($request->file('receipt'), 'invoices'); // Delete FileManager::delete('uploads/old.png'); FileManager::deleteVariants($result->variants); // URLs $url = FileUrl::getUrl('uploads/photo.png'); $signed = FileUrl::getSignedUrl('uploads/photo.png', now()->addHour());
Documentation
For Users
| Document | Description |
|---|---|
| Getting Started | Installation, requirements, Imagick setup |
| Usage Guide | Facades, ImageUploader, FileMover, FileUrl, variants, deletion |
| HTTP Upload API | Endpoints, authentication, request/response formats, configuration |
For Developers
| Document | Description |
|---|---|
| AGENTS.md | Architecture conventions, DDD layers, code style, testing |
| PRD: Core Package | Product vision, scope, roadmap |
| PRD: File Upload API | Upload API feature requirements |
| ADR Index | Architecture decision records |
| Development Skills | Step-by-step guides for extending the package |
Testing
vendor/bin/phpunit -c phpunit.xml
License
MIT License — Marij Mokoginta (M2code)