Rules. Запрет на использование определенных символов в файле
Есть yii2 форма. Вот правила:
public function rules()
{
return [
[['path'], 'file','skipOnEmpty' => false, 'extensions' => ['html','htm']],
[['language'], 'string',],
];
}
Необходимо добавить еще одно правило. Чтобы в загружаемом файле не было символов <? и ?>
Подскажите, как это сделать?
Ответы (1 шт):
Автор решения: zabachok
→ Ссылка
Вам необходимо написать свой валидатор, для проверки содержимого файла. Здесь подробное описание о том как делать свои валидаторы. В вашем случае это будет простой метод, который прочитает содержимое файла и проверит его строковой функцией. Далее пример кода для наглядности.
В метод rules добавить валидатор:
['file', 'fileContentValidator'],
И ниже метод:
public function fileContentValidator()
{
$content = file_get_contents($this->file->tempName);
if (strpos($content, '<?') !== false) {
$this->addError('file', 'Ваше сообщение об ошибке');
}
}
Обратите внимание, что свойство file должно быть объектом класса yii\web\UploadedFile