unique / yii2-files
Allows to easily add file upload functionality in Yii2 framework
dev-main
2026-04-20 21:07 UTC
Requires
- php: >=8.0
- ext-dom: *
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- phpunit/phpunit: ^9.4
This package is auto-updated.
Last update: 2026-04-20 21:07:41 UTC
README
An easy to use api File upload with a model class.
Installation
The preferred way to install this extension is through composer.
Either run
composer require unique/yii2-files
or add
"unique/yii2-files": "@dev"
to the require section of your composer.json file.
To create DB tables run migration file:
./yii migrate --migrationPath="vendor/unique/yii2-files/src/migrations"
or add to your config file:
'controllerMap' => [ 'migrate' => [ 'class' => 'yii\console\controllers\MigrateController', 'migrationNamespaces' => [ 'unique\\yii2files\\migrations', ] ], ]
Usage
In order to use the behavior, you first need to load the module. Module can only be loaded once. Add the following to your config file:
<?php [ 'bootstrap' => [ // ..., 'files' ], // ... 'modules' => [ 'files' => [ 'class' => \unique\yii2files\FilesModule::class, // Defines an alias friendly path, where to store all uploaded files 'uploads_path' => '@app/www/uploads/files', ], // ... ] ] ?>
Then use UploadAction in your api controller, for example:
class FilesController extends \yii\rest\Controller { public function actions(){ return array_merge( parent::actions(), [ 'class' => \unique\yii2files\UploadAction::class, ] ); } }
Now, you can use something like uppy to easily upload files:
<template> <uppy-context-provider :uppy="uppy"> <Dropzone /> </uppy-context-provider> </template> <script> export default defineComponent( { computed: { uppy() { return new Uppy( { restrictions: { maxNumberOfFiles: 1 } } ) .use( XHR, { endpoint: this.$url( '/api/files/upload' ), } ) .on( 'upload-success', ( file, response ) => { console.log( file, response ); // All File model fields: response.body; } ); }, } } ) </script>