Files
faveo/vendor/unisharp/laravel-filemanager/docs/config.md
RafficMohammed 774eed8b0e laravel-6 support
2023-01-08 01:17:22 +05:30

6.3 KiB

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:

  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

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

  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

  • 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, if folder_name is set to files2 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/
  • 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 or boolean
  • 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.