/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/validators/ExtensionValidator.php
64 строки
1 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\validators; use common\helpers\UploadHelper; use yii\base\InvalidConfigException; use yii\validators\Validator; use Yii; /** * Валидатор для проверки файлов на безопасность загрузки * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2019 */ class ExtensionValidator extends Validator { /** * Название атрибутиа с именем файла * @var null */ public $filenameAttribute = 'filename'; /** * @inheritdoc */ public function init() { parent::init(); if ($this->message === null) { $this->message = Yii::t('app', 'File «{value}» blocked'); } if ($this->filenameAttribute === null) { throw new InvalidConfigException('ExtensionValidator::filenameAttribute must be set.'); } } /** * @inheritdoc */ public function validateAttribute($model, $attribute) { $erp = $model->$attribute; $result = $this->validateValue($erp); if (!empty($result)) { $this->addError($model, $attribute, $result[0], $result[1]); } } /** * {@inheritdoc} */ protected function validateValue($value) { $extension = pathinfo($value, PATHINFO_EXTENSION); if (!$extension or UploadHelper::checkDeny($extension)) { return [$this->message, [$value]]; } } }