livewire-filemanager/filemanager
Livewire-powered file manager for Laravel: drag & drop uploads, search, folders, dark mode, multi-language UI, and API endpoints. Integrates with Spatie Media Library for media handling and thumbnails. PHP 8.2+.
MediaCreated, FolderDeleted) for custom logic (e.g., logging, notifications). Ideal for teams needing to hook into file operations without modifying core package code.<x-livewire-filemanager /> inclusion, but requires proper Tailwind config for production (avoiding Play CDN). Tailwind v3/v4 support ensures flexibility.composer.json (e.g., ^1.0).FileController (e.g., mimes:['jpg','pdf']).assets.show route) unless explicitly needed.php artisan queue:work).upload_max_filesize, post_max_size). Adjust php.ini or use chunked uploads (e.g., Livewire Dropzone).php artisan vendor:publish --tag=livewire-filemanager-configphp artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-config"assets.show route..exe) or virus scanning? If yes, custom middleware is required.folders table) or read replicas for Spatie Media Library.resources/lang structure.php artisan vendor:publish --tag=livewire-filemanager-views
| Component | Compatibility | Notes |
|---|---|---|
| Laravel | 10.x–13.x (PHP 8.2+) | Tested on Laravel 13; ensure config/app.php includes LivewireFilemanager\Filemanager\FilemanagerServiceProvider. |
| Livewire | 3.x | Core dependency; no version conflicts expected. |
| Spatie Media Lib | 11.x | Critical for file storage. Ensure spatie/laravel-medialibrary is installed (^11.0). |
| TailwindCSS | 3.x/4.x | Required for styles. Configure tailwind.config.js to include package views. |
| AlpineJS | 3.x | Used for dynamic UI elements (e.g., modals). |
| PHP Extensions | fileinfo, gd (for thumbnails), pdo |
Verify these are enabled in php.ini. |
| Databases | MySQL, PostgreSQL, SQLite (Spatie Media Library supported DBs) | No additional schema changes beyond Spatie’s migrations. |
| Queues | Database, Redis, etc. (Laravel supported) | Thumbnail generation uses queues; configure QUEUE_CONNECTION in .env. |
| Storage | Local, S3, FTP, etc. (Spatie drivers) | Works with any Spatie-supported storage. |
Prerequisite Setup:
composer require livewire/livewire spatie/laravel-medialibrary livewire-filemanager/filemanager
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-migrations"
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-config"
php artisan migrate
Package Integration:
php artisan vendor:publish --tag=livewire-filemanager-migrations
php artisan vendor:publish --tag=livewire-filemanager-config
tailwind.config.js):
content: [
'./resources/**/*.blade.php',
'./vendor/livewire-filemanager/filemanager/resources/views/**/*.blade.php',
]
@filemanagerStyles
<!-- ... -->
@filemanagerScripts
Optional Features:
Route::get('{path}', [\LivewireFilemanager\Filemanager\Http\Controllers\Files\FileController::class, 'show'])
->where('path', '.*')
->name('assets.show');
config/livewire-filemanager.php:
'acl_enabled' => true,
Update Spatie’s media_model to LivewireFilemanager\Filemanager\Models\Media.Post-Installation:
php artisan queue:work
How can I help you explore Laravel packages today?