File uploader. Yii2 extension based on jQuery File Upload Plugin.
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist joni-jones/yii2-fuploader "*"
or add
"joni-jones/yii2-fuploader": "*"
to the require section of your composer.json
file.
Once the extension is installed, simply use it in your code by :
<?= \jones\fuploader\FileUpload::widget();?>
Specify action
property for uploading url:
FileUpload::widget([
'action' => Url::to(['some_action'])
]);
Specify any jquery file upload options:
FileUpload::widget([
'options' => [
'plugin' => [
'formData' => 'some data',
],
],
'content' => 'Select image',
]);
To setup plugin events or callbacks - use clientEvents
option for widget:
FileUpload::widget([
'clientEvents' => [
'done' => 'function(e, data){console.log(data);}',
'fail' => 'function(e, data){console.log(data);}'
]
]);
Also you can use extension actions to store some file details after uploading. For example, update user avatar attribute in database.
public function actions()
{
return[
'some_action' => [
'class' => 'jones\fuploader\actions\UploadAction',
'path' => 'some path for uploading',
'url' => 'some url for uploaded file', //this url will be accessable in action response
'callback' => [$this, 'someCallback'] //any callable function
]
];
}
If callback was specified it will be triggered after uploading:
public function someCallback($request, $files)
{
// some code
}
UploadAction()
return response in json format. This is structure of response:
{"message": "some success message", "files": [{"name": "", "ext": ""}], "url": "url to files directory"}
{"reason": "message with reason why file does not uploaded"}
Also, status codes of response will be returned in headers.
MIT
Comments