The config is in config/lfm.php
.
Routing:
use_package_routes
- type:
boolean
- default:
true
Use default routes or not. You will need to define routes to all controllers of this package if this is set to false
.
Multi-User Mode:
allow_private_folder
- type:
boolean
- default:
true
Only the owner(each signed-in user) of the private can upload and manage files within. Set to false
to turn this feature off.
private_folder_name
- type:
string
- default: user id
Privates folders for each user will be named by this config. Default to user id.
To change the behavior:
- run
php artisan publish tag="lfm_handler"
- rewrite
userField
function in App\Handler\ConfigHandler class - set value of this config to App\Handler\ConfigHandler::class
allow_shared_folder
- type:
boolean
- default:
true
shared_folder_name
- type:
string
- default:
"shares"
Flexible way to customize client folders accessibility.
If you want to customize client folders:
- run
php artisan publish tag="lfm_handler"
- rewrite
userField
function inApp\Handler\ConfigHandler
class - set value of this config to
App\Handler\ConfigHandler::class
All users can upload and manage files within shared folders. Set to false
to turn this feature off.
Folder Categories
folder_categories
- type:
array
(nested) - default:
'folder_categories' => [
'file' => [
'folder_name' => 'files',
'startup_view' => 'list',
'max_size' => 50000, // size in KB
'valid_mime' => [
'image/jpeg',
'image/pjpeg',
'image/png',
'image/gif',
'application/pdf',
'text/plain',
],
],
'image' => [
'folder_name' => 'photos',
'startup_view' => 'grid',
'max_size' => 50000, // size in KB
'valid_mime' => [
'image/jpeg',
'image/pjpeg',
'image/png',
'image/gif',
],
],
],
The default config creates two folder categories, file
and image
, each operates independently. Files uploaded by users will be placed under one of these folder categories, depend on which is configured with your WYSIWYG editor or stand-alone upload button.
Detail options are explained here:
folder_name
: The folder name of the category. For example, iffolder_name
is set tofiles2
then:- directory path of the private folder will be:
/<path-to-laravel>/storage/app/public/files2/<user-id>/
- directory path of the shared folder will be:
/<path-to-laravel>/storage/app/public/files2/shares/
- directory path of the private folder will be:
startup_view
: The default display mode. Available options:list
&grid
.max_size
: The maximum size(in KB) of of a single file to be uploaded.valid_mime
: Only files with mime types listed here are allowed to be uploaded. See full mime types list.
Pagination:
paginator
- type:
array
- default:
'paginator' => [
'perPage' => 30,
],
Upload / Validation:
disk
- type:
string
- default:
public
Disk name of Laravel File System. All files are placed in here. Choose one of the disks
section in config/filesystems.php
.
rename_file
- type:
boolean
- default:
false
If set to true
, the uploaded file will be renamed using uniqid()
.
alphanumeric_filename
- type:
boolean
- default:
false
If set to true
, non-alphanumeric file name will be replaced with _
.
alphanumeric_directory
- type:
boolean
- default:
false
If set to true
, non-alphanumeric folder name will be rejected.
should_validate_size
- type:
boolean
- default:
false
If set to true
, the size of uploading file will be verified.
should_validate_mime
- type:
boolean
- default:
true
If set to true
, the mime type of uploading file will be verified.
over_write_on_duplicate
- type:
int
- default:
false
Define behavior on files with identical name. Setting it to true
cause old file replace with new one. Setting it to false
show error-file-exist
error and abort the upload process.
Thumbnail
should_create_thumbnails
- type:
boolean
- default:
true
If set to true
, thumbnails will be created for faster loading.
thumb_folder_name
- type:
string
- default:
thumbs
Folder name to place thumbnails.
raster_mimetypes
- type:
array
- default:
'raster_mimetypes' => [
'image/jpeg',
'image/pjpeg',
'image/png',
],
Create thumbnails automatically only for listed types. See full mime types list.
thumb_img_width
- type:
int
- default:
200
Thumbnail images width (in px).
thumb_img_height
- type:
int
- default:
200
Thumbnail images height (in px).
Create thumbnails automatically only for listed types.
File Extension Information
file_type_array
- type:
array
- default:
'file_type_array' => [
'pdf' => 'Adobe Acrobat',
'doc' => 'Microsoft Word',
'docx' => 'Microsoft Word',
'xls' => 'Microsoft Excel',
'xlsx' => 'Microsoft Excel',
'zip' => 'Archive',
'gif' => 'GIF Image',
'jpg' => 'JPEG Image',
'jpeg' => 'JPEG Image',
'png' => 'PNG Image',
'ppt' => 'Microsoft PowerPoint',
'pptx' => 'Microsoft PowerPoint',
],
Gives description for listed file extensions.
php.ini override
php_ini_overrides
- type:
array
orboolean
- default:
'php_ini_overrides' => [
'memory_limit' => '256M',
],
These values override your php.ini settings before uploading files. Set these to false to ingnore and apply your php.ini settings
⚠️ Caveats
The php_ini_overrides are applied on every request the filemanager does and are reset once the script has finished executing. This has one drawback: any ini settings that you might want to change that apply to the request itself will not work.
For example, overriding these settings will not work:
- upload_max_filesize
- post_max_size
Why this is expected behaviour: upload_max_filesize and post_max_size will get set but uploaded files are already passed to your PHP script before the settings are changed.