Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Elfinder Flysystem Driver

Elfinder Flysystem Driver Laravel Package

barryvdh/elfinder-flysystem-driver

Flysystem driver for elFinder, connecting the elFinder file manager to Laravel and other PHP apps via League\Flysystem adapters. Browse, upload, and manage files across local disks and cloud storage backends through a unified filesystem layer.

View on GitHub
Deep Wiki
Context7

elFinder driver for Flysystem

Frequently asked questions about Elfinder Flysystem Driver
How do I install this package in a Laravel project?
Run `composer require barryvdh/elfinder-flysystem-driver` to install the package. Then, configure your `config/filesystems.php` to use the `elfinder` disk driver, which will connect elFinder to your existing Flysystem adapters (e.g., S3, local). Ensure the `elFinder` connector is properly set up in your frontend.
Which Laravel versions are supported?
This package is compatible with Laravel 9.x and 10.x, leveraging Flysystem v3.x. Check the package’s [GitHub releases](https://github.com/barryvdh/elfinder-flysystem-driver/releases) for the latest version’s Laravel requirements. Always pin your Composer dependency to avoid breaking changes.
Can I use this with AWS S3 or other cloud storage?
Yes, the package works with any Flysystem adapter, including AWS S3, Dropbox, or FTP. Configure your `config/filesystems.php` to define the adapter (e.g., `s3`), then ensure the adapter’s credentials and settings (like CORS for S3) are properly set. elFinder will reflect the storage’s capabilities, such as file permissions or metadata.
How do I restrict elFinder access to authenticated users?
Use Laravel middleware to gate elFinder endpoints. For example, add `auth` or custom middleware to the elFinder route (e.g., `Route::middleware(['auth'])->group(...)`). You can also use Laravel’s `can()` gates to limit access based on user roles or permissions, such as `can:upload-files`.
Does this package support file locking or concurrent edits?
File locking depends on your underlying Flysystem adapter. Local filesystems typically support locking, while cloud storage like S3 may not. Configure the adapter’s settings (e.g., `locker` in S3) and test in a staging environment. elFinder itself handles UI-level locking prompts, but backend enforcement requires adapter support.
How do I customize elFinder’s UI or add plugins?
elFinder’s UI is customizable via JavaScript initialization options. Extend the default config by passing settings to the `elFinder` constructor (e.g., `new elFinder(...)`). For plugins, include additional JavaScript/CSS files in your Laravel asset pipeline (Vite/Mix) and configure them in the elFinder options. Check the [elFinder documentation](https://studio-42.github.io/elFinder/) for available plugins.
What’s the performance impact of using elFinder with cloud storage?
Performance varies by storage backend. Local filesystems are fastest, while cloud storage (e.g., S3) may introduce latency for directory listings or large file transfers. Optimize by caching directory listings (Laravel’s Redis cache works well) and using Flysystem’s `visibility` or `stream` settings to reduce API calls. Benchmark with your target storage in staging.
Can I use this package without elFinder’s frontend?
No, this package is specifically a Flysystem driver for elFinder and requires the elFinder frontend (JavaScript/CSS) to function. If you’re using a different file manager (e.g., Dropzone, CKEditor), this package won’t work standalone. However, you can use Flysystem directly in Laravel without elFinder for backend file operations.
How do I handle file deletions or soft deletes in elFinder?
By default, elFinder triggers Flysystem’s `delete` method, which permanently removes files. For soft deletes, override the Flysystem adapter’s `delete` method or use Laravel’s `Storage::delete()` with custom logic. Alternatively, listen to elFinder’s `delete` events and implement your own deletion workflow (e.g., moving files to a `deleted` folder).
Are there alternatives to this package for Laravel file management?
Yes, alternatives include Laravel’s built-in `Storage` facade (for backend-only operations), Spatie’s `laravel-medialibrary` (for Eloquent-based file management), or standalone file managers like Dropzone.js or CKEditor’s File Browser. However, this package uniquely combines elFinder’s polished UI with Flysystem’s flexibility, making it ideal for projects needing both a user-friendly interface and Laravel’s filesystem ecosystem.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor