barryvdh / elfinder-flysystem-driver
A Flysystem Driver for elFinder
Fund package maintenance!
barryvdh
fruitcake.nl
Installs: 3 561 619
Dependents: 35
Suggesters: 8
Security: 0
Stars: 184
Watchers: 7
Forks: 41
Open Issues: 23
Requires
- php: ^8.1
- intervention/image: ^3
- league/flysystem: ^3
- studio-42/elfinder: ^2.1.62
Requires (Dev)
- league/flysystem-memory: ^3
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^3.5
Suggests
- league/glide: 1.x to display images through Glide
README
This package adds a VolumeDriver for elFinder to use Flysystem as a root in your system. You need to have elFinder 2.1 installed. You can download the source or nightlies from https://github.com/Studio-42/elFinder or use the Laravel version: https://github.com/barryvdh/laravel-elfinder
Require this package in your composer.json and update composer.
composer require barryvdh/elfinder-flysystem-driver
This will require Flysystem, but you might need additional adapters to fit your purpose. See https://github.com/thephpleague/flysystem for more information.
Basic usage
You can use the driver by setting the connector config to Flysystem.
'roots' => [
[
'driver' => 'Flysystem',
'path' => 'images',
'URL' => '/images',
'filesystem' => new Filesystem(new LocalAdapter('/path/to/public_html')),
'cache' => 'session', // 'session', 'memory' or false
],
[
'driver' => 'Flysystem',
'URL' => 'http://mydomain.com/content',
'alias' => 'Mydomain.com',
'filesystem' => new Filesystem(new FtpAdapter(
[
'host' => 'mydomain.com',
'username' => 'user',
'password' => '****',
'root' => '/domains/mydomain.com/public_html/content',
]
)),
],
[
'driver' => 'Flysystem',
'adapter' => new DropboxAdapter(new Dropbox\Client($token, $appName))
],
];
The path
and URL
options are optional. The path defaults to '/', the URL is only possible when the file is visible through an URL.
Displaying thumbnails/images through Glide
If you require Glide, you can show thumbnails for your images and generate secure urls.
[
'driver' => 'Flysystem',
'filesystem' => $fs,
'glideURL' => 'http://domain.com/glideserver',
'glideKey' => 'your-sign-key',
],
You can still use the tmbSize and tmbCrop options from the configuration options
This will require you to setup a basic server with Glide, see http://glide.thephpleague.com/ A signKey is optional, but can help secure your images against changing parameters.
Note: When securing image, you need to remove the
_
parameter from your Request object:$request->query->remove('_');
Otherwise the signature will fail. The_
parameter is used to disable caching.
License
This elFinder driver is open-sourced software licensed under the MIT license