PHPackages                             cyhalothrin/yiiflow - 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. cyhalothrin/yiiflow

ActiveYii2-extension

cyhalothrin/yiiflow
===================

Upload files with flowjs

0.1.0(10y ago)1425[1 issues](https://github.com/cyhalothrin/yiiflow/issues)MITJavaScript

Since Jan 11Pushed 10y ago1 watchersCompare

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

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

Yiiflow
=======

[](#yiiflow)

Иногда необходимо прикрепить большие файлы к форме, при этом запрос может отправляться очень долго, и сервер может отклонить запрос, по причине того что истекло время или размер файла превысил допустимый размер. Yiiflow позволяет загружать файлы на сервер и сохранить их после отправки формы. Использует [flow.js](https://github.com/flowjs/flow.js) для отправки файлов. Отображает прогресс загрузки файлов, с возможностью отмены. Сохранена совместимость с `yii\web\UploadedFile`.

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

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

```
composer require cyhalothrin/yiiflow

```

Настройка
---------

[](#настройка)

В контейнере приложения необходимо зарегистрировать `Flow\ConfigInterface` и указать директорию сохранения временных файлов:

```
class AppBootstrap implements yii\base\BootstrapInterface
{
    public function bootstrap($app)
    {
        \Yii::$container->set(
            'Flow\ConfigInterface',
            function () {
                $config = new Flow\Config();
                $config->setTempDir(Yii::getAlias('pathToChunksTempDir'));
                return $config;
            }
        );
    }
}
```

Подробнее о дополнительных настройках можно прочитать [тут](https://github.com/flowjs/flow-php-server).

Использование
-------------

[](#использование)

Для обработки загрузки файлов можно указать контроллер в конфигурации приложения:

```
'controllerMap' => [
    'flow' => 'cyhalothrin\yiiflow\controllers\FlowController',
],
```

или указать `cyhalothrin\yiiflow\components\UploadAction` и `cyhalothrin\yiiflow\components\DeleteAction` в любом вашем контроллере в `actions()`.

Далее в форме установить виджет `\cyhalothrin\yiiflowFlowFileInput`:

```
\cyhalothrin\yiiflowFlowFileInput::widget([
    'name' => 'file',
    'value' => $file, // необходимо восстанавливать значение
    'uploadAction' => ['/flow/upload'],
    'deleteAction' => ['/flow/delete'],
    'pluginOptions' => [
        'flowOptions' => [
            // конфигурация flow.js
        ],
    ],
]);
```

Для `ActiveForm`:

```
$form->field($model, 'files')->widget('\cyhalothrin\yiiflowFlow\FileInput', [
    // config
]);
```

После отправки формы загруженные файлы можно получить привычным для Yii способом:

```
$files = \cyhalothrin\yiiflow\UploadedFile::getInstancesByName('files');
```

или для модели:

```
$model->files = \cyhalothrin\yiiflow\UploadedFile::getInstances($model, 'files');
```

**Обратите внимание:** методы для получения одного файла не работают, по крайней мере пока, но я не вижу в них смысла в контексте данного расширения.

Далее все операции по валидации и сохранению файлов идентичны для стандартного `yii\web\UploadedFile`.

### Очистка временных файлов

[](#очистка-временных-файлов)

Фрагменты загружаемых файлов как и сами загруженные файлы хранятся в указанной в конфигурации директории. По каким-то причинам эти файлы могут быть не перемещены из этой директории, поэтому необходимо очищать ее. Для этого есть консольная команда, которую можно запускать через cron. Ее необходимо указать в конфигурации консольного приложения:

```
'controllerMap' => [
    'cleaning' => 'cyhalothrin\yiiflow\commands\CleaningController',
],
```

И запустить:

```
php yii cleaning

```

По умолчанию удаляются файлы старше двух суток, но это можно изменить через `expirationTime` опцию контроллера.

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3772d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b237110f3bbbd9acf4e1da924e60aa93282000a3bb4c0de63f0e5fd03ddecba9?d=identicon)[cyhalothrin](/maintainers/cyhalothrin)

---

Top Contributors

[![cyhalothrin](https://avatars.githubusercontent.com/u/5463598?v=4)](https://github.com/cyhalothrin "cyhalothrin (3 commits)")

---

Tags

yii2fileuploadflow.js

### Embed Badge

![Health badge](/badges/cyhalothrin-yiiflow/health.svg)

```
[![Health](https://phpackages.com/badges/cyhalothrin-yiiflow/health.svg)](https://phpackages.com/packages/cyhalothrin-yiiflow)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M2.6k](/packages/craftcms-cms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
