DEMO: Laravel File Manager
Vue.js Frontend: alexusmai/vue-laravel-file-manager
- Frontend on Vue.js - vue-laravel-file-manager
- Work with the file system is organized by the standard means Laravel Flysystem:
- Local, FTP, S3, Dropbox ...
- The ability to work only with the selected disks
- Several options for displaying the file manager:
- One-panel view
- One-panel + Directory tree
- Two-panel
- The minimum required set of operations:
- Creating files
- Creating folders
- Copying / Cutting Folders and Files
- Renaming
- Uploading files (multi-upload)
- Downloading files
- Two modes of displaying elements - table and grid
- Preview for images
- Viewing images
- Full screen mode
- More operations (v.2):
- Audio player (mp3, ogg, wav, aac), Video player (webm, mp4) - (Plyr)
- Code editor - (Code Mirror)
- Image cropper - (Cropper.js)
- Zip / Unzip - only for local disks
- Integration with WYSIWYG Editors:
- CKEditor 4
- TinyMCE 4
- TinyMCE 5
- SummerNote
- Standalone button
- ACL - access control list
- delimiting access to files and folders
- two work strategies:
- blacklist - Allow everything that is not forbidden by the ACL rules list
- whitelist - Deny everything, that not allowed by the ACL rules list
- You can use different repositories for the rules - an array (configuration file), a database (there is an example implementation), or you can add your own.
- You can hide files and folders that are not accessible.
- Events (v2.2)
- Thumbnails lazy load
- Dynamic configuration (v2.4)
- Supported locales : ru, en, ar, sr, cs, de
composer require laravel/helpers
Now you can create your own config repositories, it will allow to change your configuration dynamically.
How to do it:
Create new class - example - TestConfigRepository
namespace App\Http;
use Alexusmai\LaravelFileManager\Services\ConfigService\ConfigRepository;
class TestConfigRepository implements ConfigRepository
{
// implement all methods from interface
}
For example see src/Services/ConfigService/DefaultConfigRepository.php
Update pre-compiled css and js files and config file - file-manager.php
// config
php artisan vendor:publish --tag=fm-config --force
// js, css
php artisan vendor:publish --tag=fm-assets --force
If you use the ACL, now you don't need to add the acl middleware to configuration.
//======= In old versions ==========
'acl' => true,
// add acl middleware to your array
'middleware' => ['web', 'fm-acl'],
//======= In a new version =========
'acl' => true,
'middleware' => ['web'],