syablonskiy / yii2-attachfile
Package for attaching files using ajax
Installs: 15
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: ~2.0.0
This package is not auto-updated.
Last update: 2024-10-08 17:32:00 UTC
README
Данный модуль предназначен для приклепления файла(ов) к моделям ActiveRecord.
Установка
-
Установите расширение с помощью Composer выполните в терминале
composer require syablonskiy/yii2-attachfile "^1"
либо добавьте в секцию require в файле composer.json"syablonskiy/yii2-attachfile": "^1"
-
Добавьте модуль в конфигурацию вашего web-приложения
'modules' => [ ... 'attachfile' => [ 'class' => syablonskiy\attachfile\Module::className(), 'storePath' => 'path/to/upload/folder', //default '@app/uploads' 'rules' => [ 'extensions' => 'jpg, zip, mp4', 'maxSize' => 1024*1024, ], 'maxFiles' => 2, //default '3' 'tableName' => 'your_table_name', //default 'attachment' ], ... ]
-
Выполните миграцию
php yii migrate --migrationPath=@syablonskiy/attachfile/migrations
-
Прикрепите поведение к вашей ActiveRecord модели
public function behaviors() { return [ \syablonskiy\attachfile\behaviors\AttachmentBehavior::className() ]; }
- Удаление неактуальных файлов В конфигурацию консольного приложения добавьте
'modules' => [ ... 'attachfile' => [ 'class' => syablonskiy\attachfile\Module::className(), 'controllerNamespace' => 'syablonskiy\attachfile\commands', ], ... ]
И добавьте в планировщик Cron подобную строку
*/30 * * * * cd /path/to/your/app && /usr/bin/php yii attachfile/cron/delete-files >/dev/null
После этого каждые полчаса будут удаляться загруженные, но неприкрепленные к модели файлы.
Использование
- Для прикрепления файлов, к создаваемой модели, передайте в виджет текущий экземпляр [[yii\widgets\ActiveForm]]
<?= \syablonskiy\attachfile\widgets\InputWidget::widget(['form' => $form]) ?>
- Отображение прикреплённых файлов модели
$model
<?= \syablonskiy\attachfile\widgets\FilesListWidget::widget( [ 'model' => $model, 'allowDeletion' => true //default 'false' ] ) ?>
Опция 'allowDeletion' добавляет возможность отмечать файлы для удаления