UniSharp / laravel-filemanager

Media gallery with CKEditor, TinyMCE and Summernote support. Built on Laravel file system.
https://unisharp.github.io/laravel-filemanager/
MIT License
2.08k stars 721 forks source link

One Common Folder for ?type=image or ?type=file - /filemanager to navigate to one common file where files & photos stored #978

Open kinger251285 opened 4 years ago

kinger251285 commented 4 years ago

Currently i am using the iframe as part of a component and within the filemanger of Laraberg.

When i open the filemanager i would like it to navigate to the base directory of Filemanager under the public/storage and then have the files under files and images under images within this base folder. When accessing /filemanager?type=file i would like it to navigate to the Filemanager/files folder allowing me to still access the one common Filemanager folder if needed and the same with images.

My current lfm config file:

`<?php

/* -------------------------------------------------------------------------- Documentation for this config :
online => http://unisharp.github.io/laravel-filemanager/config
offline => vendor/unisharp/laravel-filemanager/docs/config.md

*/

return [ /* -------------------------------------------------------------------------- Routing
 */

'use_package_routes'       => true,

/*
|--------------------------------------------------------------------------
| Shared folder / Private folder
|--------------------------------------------------------------------------
|
| If both options are set to false, then shared folder will be activated.
|
 */

'allow_private_folder'     => false,

'allow_multi_user'         => false,

// Flexible way to customize client folders accessibility
// If you want to customize client folders, publish tag="lfm_handler"
// Then you can rewrite userField function in App\Handler\ConfigHandler class
// And set 'user_field' to App\Handler\ConfigHandler::class
// Ex: The private folder of user will be named as the user id.
'private_folder_name'      => UniSharp\LaravelFilemanager\Handlers\ConfigHandler::class,

'allow_shared_folder'      => true,

'shared_folder_name'       => 'Filemanager',

/*
|--------------------------------------------------------------------------
| Folder Names
|--------------------------------------------------------------------------
 */

'folder_categories'        => [
    'file'  => [
        'folder_name'  => 'files',
        'startup_view' => 'grid',
        'max_size'     => 50000, // size in KB
        'valid_mime'   => [
            'image/jpeg',
            'image/pjpeg',
            'image/png',
            'image/gif',
            'image/svg+xml',
        ],
    ],
    'image' => [
        'folder_name'  => 'photos',
        'startup_view' => 'list',
        'max_size'     => 50000, // size in KB
        'valid_mime'   => [
            'image/jpeg',
            'image/pjpeg',
            'image/png',
            'image/gif',
            'image/svg+xml',
            'application/pdf',
            'text/plain',
        ],
    ],
],

/*
|--------------------------------------------------------------------------
| Pagination
|--------------------------------------------------------------------------
 */

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

/*
|--------------------------------------------------------------------------
| Upload / Validation
|--------------------------------------------------------------------------
 */

'disk'                     => 'public',

'rename_file'              => false,

'alphanumeric_filename'    => false,

'alphanumeric_directory'   => false,

'should_validate_size'     => false,

'should_validate_mime'     => false,

// 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 stop upload
'over_write_on_duplicate'  => false,

/*
|--------------------------------------------------------------------------
| Thumbnail
|--------------------------------------------------------------------------
 */

// If true, image thumbnails would be created during upload
'should_create_thumbnails' => true,

'thumb_folder_name'        => 'thumbs',

// Create thumbnails automatically only for listed types.
'raster_mimetypes'         => [
    'image/jpeg',
    'image/pjpeg',
    'image/png',
],

'thumb_img_width'          => 200, // px

'thumb_img_height'         => 200, // px

/*
|--------------------------------------------------------------------------
| File Extension Information
|--------------------------------------------------------------------------
 */

'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',
],

/*
|--------------------------------------------------------------------------
| php.ini override
|--------------------------------------------------------------------------
|
| These values override your php.ini settings before uploading files
| Set these to false to ingnore and apply your php.ini settings
|
| Please note that the 'upload_max_filesize' & 'post_max_size'
| directives are not supported.
 */
'php_ini_overrides'        => [
    'memory_limit' => '256M',
],

]; `

Ive tried changing the settings for the shared folder and nothing works.

mafftor commented 4 years ago

add to the folder_categories array

'common'  => [
        'folder_name'  => 'common',
        'startup_view' => 'list',
        'max_size'     => 50000, // size in KB
        'valid_mime'   => [
            'image/jpeg',
            'image/pjpeg',
            'image/png',
            'image/gif',
            'image/svg+xml',
            'application/pdf',
            'text/plain',
        ],
    ],

and navigate to ?type=common

P.S. Just create new type and setup shared valid_mimes

kinger251285 commented 4 years ago

Thanks for the reply.

However that just adds another folder and accesses that folder.

I want images and files to be sub folders of the common folder rather than public and the standard routes for ?type=image and ?type=files to access the files and images under that common folder.

Your suggesstion has just added public/common leaving me with folders as below:

public/common public/files public/images

i would like to access as below:

public/common/files public/common/images

Therefore the following routes would access these folders as below:

/filemanager == public/common /filemanager?type=images == public/common/images /filemanger?type=files == public/common/files

I hope that makes more sense

kinger251285 commented 4 years ago

Ok so playing a little more.

I have now deleted the images folder from the config file leaving only the files folder.

Everything now navigates to that files folder and i can manually create the sub folder i want.

Not sure if this is the correct way or not but works how i want.

mafftor commented 4 years ago

@kinger251285 Great!