PHPackages                             lav45/yii2-file-upload-module - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. lav45/yii2-file-upload-module

ActiveYii2-extension[File &amp; Storage](/categories/file-storage)

lav45/yii2-file-upload-module
=============================

This is Yii2 extension for the upload files

1.2.0(11mo ago)311.9k↓24.3%7BSD-3-ClausePHP

Since Mar 7Pushed 9mo ago1 watchersCompare

[ Source](https://github.com/LAV45/yii2-file-upload-module)[ Packagist](https://packagist.org/packages/lav45/yii2-file-upload-module)[ Docs](https://github.com/lav45/yii2-file-upload-module)[ RSS](/packages/lav45-yii2-file-upload-module/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (12)Used By (0)

yii2-file-upload-module
=======================

[](#yii2-file-upload-module)

This is a module for the Yii2 Framework which will help you upload files and access them from the browser.

Installation
------------

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
~$ composer require  lav45/yii2-file-upload-module
```

to the require section of your `composer.json` file.

Basic Usage:
------------

[](#basic-usage)

Add path aliases and url to your file store in the main config You need to configure your web server to the `@storageDir` directory and specify `@storageUrl`

```
return [
    'aliases' => [
        '@storageUrl' => 'https://cdn.site.com/storage',
    ],
    'components' => [
        'fs' => [
            'class' => diecoding\flysystem\LocalComponent::className(),
            'path' => '@common/cdn',
            'secret' => 'secret'
        ]
    ],
];
```

Add action to the main controller

```
use lav45\fileUpload\UploadAction;

class PageController extends Controller
{
    public function actions()
    {
        return [
            'upload' => [
                'class' => UploadAction::className(),
            ],
        ];
    }
}
```

Need to add to your ActiveRecord model

```
use lav45\fileUpload\UploadTrait;
use lav45\fileUpload\UploadBehavior;
use lav45\fileUpload\UploadInterface;

class Page extends ActiveRecord implements UploadInterface
{
    use UploadTrait;

    public function rules()
    {
        return [
            [['image'], 'string'],
        ];
    }

    public function behaviors()
    {
        return [
            [
                'class' => UploadBehavior::className(),
                'attribute' => 'image',
            ],
        ];
    }

    public function getUploadPath()
    {
        return '/page/' . $this->id;
    }
}
```

Need to add a field for uploading files

```
/**
 * @var Page $model
 */

use lav45\fileUpload\widget\FileUpload;

$form = ActiveForm::begin();

echo $form->field($model, 'image')->widget(FileUpload::className());

ActiveForm::end();
```

Displays the uploaded file

```
