A simple, friendly, and practical file manager designed specifically for Laravel applications. This Livewire-powered tool makes it easy to manage files and folders within your project, offering an intuitive interface and seamless integration with Laravel's ecosystem. Perfect for developers seeking an efficient and user-friendly solution for file and folders management.
- Drag & drop files
- Search for files or folders
- Ready to include in any projects
- Multiple languages (en, es, fr, pt, fa)
- Darkmode available
Watch the presentation of the package here: Laravel Switzerland Meetup
- PHP 8.2.0 or greater required
Important
This package is still in development and its structure can change until a stable version is released. Use with caution in you projects.
You can install the package via composer:
composer require livewire-filemanager/filemanager
Publish the package's migration file:
php artisan vendor:publish --tag=livewire-fileuploader-migrations
This package relies on spatie/medialibrary to handle the medias, so if you haven't already configured the package, don't forget this step:
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-migrations"
If you need for informations about the spatie/medialibrary package, please visit their documentation
Note
Thumbnails When you upload images, the package will generate a thumbnail. By defaults, it will be dispatched into the queues. You'll have to launch the workers inside your app or change the QUEUE_CONNECTION value in your .env file
After that, you need to run migrations.
php artisan migrate
This will create a folders
table which will hold all the filemanager structure and a media table if not already present.
Next, you'll need to use the <x-livewire-filemanager />
component where you want to place the filemanager.
For the styles and scripts, the package relies on TailwindCSS and AlpineJS. So if you don't already have them installed, you can include the @filemanagerScripts
and @filemanagerStyles
.
<!DOCTYPE html>
<html>
<head>
@filemanagerStyles
</head>
<body>
<x-livewire-filemanager />
@filemanagerScripts
</body>
</html>
Important
The @filemanagerStyles will include the PLAY CDN from TailwindCSS which is not recommended for production. Instead, prefer including the path inside your tailwind config file.
module.exports = {
content: [
'./resources/**/*.blade.php',
'./vendor/livewire-filemanager/filemanager/resources/views/**/*.blade.php',
],
}
If you intent to give access to your files with the public, you can add this inside your web routes file:.
Route::get('{path}', [FileController::class, 'show'])->where('path', '.*')->name('assets.show');
And don't forget to import the FileController class:
use LivewireFilemanager\Filemanager\Http\Controllers\Files\FileController;
This will give you an endpoint where you can reach the files with a direct url.
Inside the filemanager, when you click on a file, you'll have the possibility to copy the url to the file. In order to work correctly, this feature needs to have your domain with https enabled.
Once everything is installed, the interface should look like this:
The whole interface is available in dark/light mode.
composer test
Please see CHANGELOG for more information on what has changed recently.
All contributions are welcome and will be fully credited.
Please see CONTRIBUTING for details.
- Yves Engetschwiler
- All illustrations are made by Quetzal Graphic Design
- All Contributors
The MIT License (MIT). Please see License File for more information.