leammas/yii2-flowjs

Easy to use widget and controller for adding HTML5 fully customizable file upload to your app

Installs: 2 230

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 2

Forks: 1

Open Issues: 0

Type:yii2-extension

dev-master 2015-11-15 20:28 UTC

This package is not auto-updated.

Last update: 2024-04-27 16:14:11 UTC


README

Easy to use widget and controller for adding HTML5 fully customizable file upload to your app

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist leammas/yii2-flowjs "*"

or add

"leammas/yii2-flowjs": "*"

to the require section of your composer.json file.

Usage

Widget

Add the widget with corresponding settings in your view. For more insight about settings and restrictions @see FlowJsWidget.php. Don't forget to add target setting containing url to FlowJsController Upload action (see below).

<?= \leammas\yii2\flowjs\FlowJsWidget::widget([
    'clientOptions' => ['target' => "'" . Url::to(['/upload']) . "'"],
    'eventHandlers' => [],
    'options' => ['class' => 'btn btn-default', 'id' => 'flow_button'],
    'targetTag' => 'button',
    'targetContent' => 'Upload!'
]); ?>

Module

To save files uploaded by the widget, you should register this extension as an application module in your web.php:

'modules' => [
    ...
    'flowjs' => 'leammas\yii2\flowjs\FlowJs'
],

After that you may check that the handler runs properly by accessing http://your.app/flowjs/flow-js/upload (this url suitable for activated enablePrettyUrl and deactivated showScriptName options, adjust to your needs). It should return 204 No Content response.

Also you may specify your own url in UrlManager

'urlManager' => [
    ...
    'rules' => [
        ...
        'upload' => 'flowjs/flow-js/upload'
    ]
],

Known issues

  1. CSRF validation for upload disabled.
  2. You can't pass attributes parameter to assign methods. @see https://github.com/flowjs/flow.js#methods
  3. Passing files with drag-n-drop is not working.