2017 © Pedro Peláez
 

yii2-extension yii2-plupload

Yii2 Plupload Queue Widget

image

bilginnet/yii2-plupload

Yii2 Plupload Queue Widget

  • Wednesday, February 28, 2018
  • by bilginnet
  • Repository
  • 1 Watchers
  • 0 Stars
  • 12 Installations
  • JavaScript
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

yii2-plupload

Yii2 Plupload queue widget, (*1)

Minimum PHP Version Latest Stable Version Total Downloads Latest Unstable Version License, (*2)

Installation

The preferred way to install this extension is through composer., (*3)

Either run, (*4)

php composer.phar require --prefer-dist bilginnet/yii2-plupload "dev-master"

or add, (*5)

"bilginnet/yii2-plupload": "dev-master"

to the require section of your composer.json file., (*6)

Usage

Let's add in controller file, (*7)

public function actions() {
    return [
        'plupload' => [
            'class' => \bilginnet\plupload\PluploadAction::className(),
            // upload path from alias - default is '@webroot/uploads' or set your alias path sample: '@yourpath'
            // set your alias into config in your main-local config file before return[]
            // Yii::setAlias('@yourpath', '@webroot/uploads/'); 
            'targetDir' => '@webroot/uploads',
            'uploadComplete' => function ($filePath, $params) {
                // Do something with file
            }
        ],
    ];
}

Let's add in your _form file, (*8)

<?= \bilginnet\plupload\Plupload::widget([
    'url' => ['plupload'], // sync url name to action name in controller actions

    // optional unique name of uploader
    // will set automatically if not set
    'uploader' => $uploaderName = uniqid('uploader_'),

    // auto start when files selected default true
    // you can set false this if you want to start uploader when form submitting
    /* 
    sample: 
    $('button[type="submit"]').click(function(event) {

        var _form = $('form');

        // ajax form validate
        $.ajax({
            type: 'post',
            url: 'ajaxValidateActionUrl', // set your url
            data: _form.serializeArray()
        }).done(function(data) {            
            if (data === 'true') {
                // ajax validate is true

                var myUploader = <?= $uploaderName ?>;
                myUploader.bind("UploadComplete", function(uploader, files) {
                    // do something

                    _form.submit();
                });
                myUploader.start();

            } else {
                // ajax validate is false
                _form.submit();
            }
        });
    });
    // in controller ajaxValidateAction
    public function actionAjaxValidate() {
        $model = new Model();
        if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
            if ($model->validate()) {
                print_r('true');
            } else {
                print_r('false');
            }
        }    
    }
    */
    'startOnSelect' => true

    'browseLabel' => 'Upload',
    'browseOptions' => ['id' => 'browse', 'class' => 'btn btn-success'],
    'options' => [
        'multi_selection' => false, // set true for multiple files
        'filters' => [
            'mime_types' => [
                ['title' => 'Image files', 'extensions' => 'jpg,jpeg,png,gif'],                
            ],
        ],
    ],
    'events' => [
        'FilesAdded' => 'function(uploader, files){                            
            $("#browse").button("loading");
        }',
        'FileUploaded' => 'function(uploader, file, response){
            $("#browse").button("reset");
        }',
        'Error' => 'function (uploader, error) {                            
            $("#browse").button("reset");
        }'
    ],
]); ?>

Please refer to the Plupload documentation: http://www.plupload.com/docs/v2/pluploadQueue, (*9)

Notes

You can use multiple widgets in 1 file sample:, (*10)

<?= \bilginnet\plupload\Plupload::widget($options1); ?>
<?= \bilginnet\plupload\Plupload::widget($options2); ?>

The Versions

28/02 2018

dev-master

9999999-dev

Yii2 Plupload Queue Widget

  Sources   Download

MIT

The Requires

 

extension yii2 widget plupload