PHPackages                             prabowomurti/yii2-upload-file - 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. prabowomurti/yii2-upload-file

ActiveYii2-extension

prabowomurti/yii2-upload-file
=============================

Yii2 upload file tools

031PHP

Since Sep 14Pushed 2y agoCompare

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

READMEChangelogDependenciesVersions (2)Used By (0)

Yii2 Upload File
================

[](#yii2-upload-file)

Yii2 tools for upload file

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

[](#installation)

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

Either run

```
php composer.phar require mdmsoft/yii2-upload-file "~2.0"

```

for dev-master

```
php composer.phar require mdmsoft/yii2-upload-file "dev-master"

```

or add

```
"mdmsoft/yii2-upload-file": "~2.0"

```

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

Usage
-----

[](#usage)

Once the extension is installed. Prepare required table by execute yii migrate.

```
yii migrate --migrationPath=@mdm/upload/migrations

```

if wantn't use db migration. you can create required table manually.

```
CREATE TABLE uploaded_file (
    "id" INT NOT NULL AUTO_INCREMENT,
    "name" VARCHAR(64),
    "filename" VARCHAR(256),
    "size" INT,
    "type" VARCHAR(32),
    PRIMARY KEY (id)
);
```

Modify your application configuration as follows:

```
return [
    ...
    'controllerMap' => [
        'file' => 'mdm\\upload\\FileController', // use to show or download file
    ],
];
```

Then simply modify your Model class:

```
public function behaviors()
{
	return [
        ...
		[
			'class' => 'mdm\upload\UploadBehavior',
			'attribute' => 'file', // required, use to receive input file
			'savedAttribute' => 'file_id', // optional, use to link model with saved file.
			'uploadPath' => '@common/upload', // saved directory. default to '@runtime/upload'
            'autoSave' => true, // when true then uploaded file will be save before ActiveRecord::save()
            'autoDelete' => true, // when true then uploaded file will deleted before ActiveRecord::delete()
		],
	];
}
```

You dont need add extra attribute `file` to model class. In controller

```
public function actionCreate()
{
    if($model->load(Yii::$app->request->post()) && $model->save()){
        ...
    }
    ...
}
```

If you set `mdm\upload\UploadBehavior::$autoSave` to `false` you must call `saveUploadedFile()`.

```
public function actionCreate()
{
    if($model->load(Yii::$app->request->post()) && $model->validate()){
        if($model->saveUploadedFile() !== false){
            $model->save(false);
            ....
        }
        ...
    }
    ...
}
```

In view file

```
// in create or update view
