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

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

kodia912/yii2-file-upload
=========================

Yii2 file upload

1.0.0(11y ago)0104BSD-3-ClausePHPPHP &gt;=5.4.0

Since Oct 12Pushed 6y agoCompare

[ Source](https://github.com/kodia912/yii2-file-upload)[ Packagist](https://packagist.org/packages/kodia912/yii2-file-upload)[ Docs](https://github.com/MihailDev/yii2-file-upload)[ RSS](/packages/kodia912-yii2-file-upload/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

Yii 2 File Upload
=================

[](#yii-2-file-upload)

В форке исправлена ошибка:

```
PHP 7.2 Cannot use yii\base\Object as Object because 'Object' is a special class name

```

Установка
---------

[](#установка)

Удобнее всего установить это расширение через [composer](http://getcomposer.org/download/).

Либо запустить

```
php composer.phar require --prefer-dist mihaildev/yii2-file-upload "*"

```

или добавить

```
"mihaildev/yii2-file-upload": "*"
```

в разделе `require` вашего composer.json файла.

Настройка Behavior для модели
-----------------------------

[](#настройка-behavior-для-модели)

```
	public function behaviors()
	{
		return [
			'file-upload' => [
				'class' => FileUploadBehavior::className(),
				/*
				'replacePairs' => [
					'' => 'id',// данный набор установлен по умолчанию
				],
				*/
				'attributes' => [
					'file' =>[
						//'handler' => FileUploadBehavior::HANDLER_FILE, // установлен по умолчанию
						'path' => '@webroot/files//.',
						'url' => '@web/files//.',
					],
					'ava' => [
						'handler' => FileUploadBehavior::HANDLER_IMAGE,
						'path' => '@webroot/files/avatar//origin.',
						'url' => '@web/files/avatar//origin.',
						'imagine' => function($filename){
								return Image::aligning($filename, 800, 800);
							},
						'saveOptions'=> ['quality' => 90],
						'thumbs' => [
							'icon' => [
								'path' => '@webroot/files/avatar//icon.',
								'url' => '@web/files/avatar//icon.',
								'imagine' => function($filename){ return Image::thumbnail($filename, 50, 50);},
								'saveOptions'=> ['quality' => 70],
							],
							'preview' => [
								'path' => '@webroot/files/avatar//preview.',
								'url' => '@web/files/avatar//preview.',
								'imagine' => function($filename){ return Image::thumbnail($filename, 200, 200);},
								'saveOptions'=> ['quality' => 90],
							]
						]
					]
				]
			],
		];
	}
```

Замечание!!! аттрибуты должны храниться в базе!

Обработка изображений производится с помощью библиотеки

Функци Image::aligning не входит в стандартную библиотеку тут я использую свою библиотеку

для получения пути в модели воспользуйтесь функцией $this-&gt;getUploadedFilePath($attributeName); для получения ссылки в модели воспользуйтесь функцией $this-&gt;getUploadedFileUrl($attributeName);

Для изображений $this-&gt;getUploadedFilePath($attributeName); - получить путь на основное изображение $this-&gt;getUploadedFilePath($attributeName, $thumbId); - получить путь на дополнительное изображение

$this-&gt;getUploadedFileUrl($attributeName); - получить ссылку на основное изображение $this-&gt;getUploadedFileUrl($attributeName, $thumbId); - получить ссылку на дополнительное изображение

пример на основе показанных выше настроек

$this-&gt;getUploadedFilePath('file'); $this-&gt;getUploadedFileUrl('file');

$this-&gt;getUploadedFilePath('ava'); $this-&gt;getUploadedFileUrl('ava');

$this-&gt;getUploadedFilePath('ava', 'icon'); $this-&gt;getUploadedFileUrl('ava', 'icon');

$this-&gt;getUploadedFilePath('ava', 'preview'); $this-&gt;getUploadedFileUrl('ava', 'preview');

Настройка и использование виджета
---------------------------------

[](#настройка-и-использование-виджета)

для файлов

```
