dpodium/yii2-filemanager

A file manager for Yii2. Allow user to manage files from any location as well as browsing files within the application.

Installs: 743

Dependents: 0

Suggesters: 0

Security: 0

Stars: 14

Watchers: 7

Forks: 14

Open Issues: 6

Type:yii2-extension

dev-develop 2018-10-12 05:37 UTC

This package is auto-updated.

Last update: 2022-08-12 14:13:37 UTC


README

Installation

Install With Composer

The preferred way to install this extension is through composer.

Either run

php composer.phar require dpodium/yii2-filemanager "dev-master"

or add

"dpodium/yii2-filemanager": "dev-master"

to the require section of your composer.json file.

Execute migration here:

yii migrate --migrationPath=@dpodium/filemanager/migrations
yii migrate/down --migrationPath=@dpodium/filemanager/migrations

Usage

Once the extension is installed, simply modify your application configuration as follows:

Upload file in local:

return [
	'modules' => [
            'gridview' => [
                'class' => '\kartik\grid\Module'
            ],
            'filemanager' => [
                'class' => 'dpodium\filemanager\Module',
                'storage' => ['local'],
                // This configuration will be used in 'filemanager/files/upload'
                // To support dynamic multiple upload
                // Default multiple upload is true, max file to upload is 10
                // If multiple set to true and maxFileCount is not set, unlimited multiple upload
                'filesUpload' => [
                    'multiple' => true,
                    'maxFileCount' => 30
                ],
                // in mime type format
                'acceptedFilesType' => [
                    'image/jpeg',
                    'image/png',
                    'image/gif',
                ],
                // MB
                'maxFileSize' => 8,
                // [width, height], suggested thumbnail size is 120X120
                'thumbnailSize' => [120,120] 
            ]
        ]
];

Upload file to AWS S3:

return [
	'modules' => [
	    'gridview' => [
                'class' => '\kartik\grid\Module'
            ],
            'filemanager' => [ // do not change module to other name
                'class' => 'dpodium\filemanager\Module',
                // This configuration will be used in 'filemanager/files/upload'
                // To support dynamic multiple upload
                // Default multiple upload is true, max file to upload is 10
                // If multiple set to true and maxFileCount is not set, unlimited multiple upload
                'filesUpload' => [
                    'multiple' => true,
                    'maxFileCount' => 30
                ],
                'storage' => [
                    's3' => [
                        'key' => 'your aws s3 key',
                        'secret' => 'your aws s3 secret',
                        'bucket' => '',
                        'region' => '',
                        'proxy' => '192.168.16.1:10',
                        'cdnDomain' => '',
                        'prefixPath' => '',
                        'cacheTime' => '', // if empty, by default is 2592000 (30 days)
                    ]
                ],
                // in mime type format
                'acceptedFilesType' => [
                    'image/jpeg',
                    'image/png',
                    'image/gif',
                ],
                // MB
                'maxFileSize' => 8,
                // [width, height], suggested thumbnail size is 120X120
                'thumbnailSize' => [120,120] 
            ]
        ]
];

You can then access File Manager through the following URL:

http://localhost/path/to/index.php?r=filemanager/folders
http://localhost/path/to/index.php?r=filemanager/files

In order to use File Manager Browse feature:

    use yii\helpers\Html;
    use yii\widgets\ActiveForm;
    use dpodium\filemanager\widgets\FileBrowse;

    // This is just an example to upload a banner
    $form = ActiveForm::begin();
    echo $form->field($model, 'banner_name');
    echo $form->field($model, 'banner_description');

    // if you would like to store file_identifier in your table
    echo $form->field($model, 'file_identifier')->widget(FileBrowse::className(), [
            'multiple' => false, // allow multiple upload
            'folderId' => 1 // set a folder to be uploaded to.
    ]);

    echo Html::submitButton('Submit', ['class' => 'btn btn-primary']);
    ActiveForm::end();

    // !important: modal must be rendered after form
    echo FileBrowse::renderModal();

In order to use File Manager TinyMCE integration:

  • install 2amigos/yii2-tinymce-widget via composer
    use yii\helpers\Html;
    use yii\widgets\ActiveForm;
    use dpodium\filemanager\widgets\FileBrowseEditor;
    
    // This is just an example to edit one field
    $form = ActiveForm::begin();

    echo $form->field($model, 'editor')->widget(TinyMce::class, [
            'clientOptions' => [
                // add yii2-filemanager to plugin config
                'plugins' => [
                    "... yii2-filemanager ..." 
                ],
                // optional add yii2-filemanager to toolbar
                'toolbar' => "... yii2-filemanager ...", 
            ]
        ]);
        
    echo Html::submitButton('Submit', ['class' => 'btn btn-primary']);
    ActiveForm::end();

    // !important: modal must be rendered after form
    echo FileBrowseEditor::widget([
            'multiple' => false, // allow multiple upload
            'folderId' => 1, // set a folder to be uploaded to.
    ]);