The config is in config/lfm.php.

Routing:

use_package_routes

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

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

Privates folders for each user will be named by this config. Default to user id.

To change the behavior:

  1. run php artisan publish tag="lfm_handler"
  2. rewrite userField function in App\Handler\ConfigHandler class
  3. set value of this config to App\Handler\ConfigHandler::class

allow_shared_folder

shared_folder_name

Flexible way to customize client folders accessibility.

If you want to customize client folders:

  1. run php artisan publish tag="lfm_handler"
  2. rewrite userField function in App\Handler\ConfigHandler class
  3. 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

'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:

Pagination:

paginator

'paginator' => [
    'perPage' => 30,
],

Upload / Validation:

disk

Disk name of Laravel File System. All files are placed in here. Choose one of the disks section in config/filesystems.php.

rename_file

If set to true, the uploaded file will be renamed using uniqid().

alphanumeric_filename

If set to true, non-alphanumeric file name will be replaced with _.

alphanumeric_directory

If set to true, non-alphanumeric folder name will be rejected.

should_validate_size

If set to true, the size of uploading file will be verified.

should_validate_mime

If set to true, the mime type of uploading file will be verified.

over_write_on_duplicate

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

If set to true, thumbnails will be created for faster loading.

thumb_folder_name

Folder name to place thumbnails.

raster_mimetypes

'raster_mimetypes' => [
    'image/jpeg',
    'image/pjpeg',
    'image/png',
],

Create thumbnails automatically only for listed types. See full mime types list.

thumb_img_width

Thumbnail images width (in px).

thumb_img_height

Thumbnail images height (in px).

Create thumbnails automatically only for listed types.

File Extension Information

file_type_array

'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

'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:

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.