Yii2 Автономная загрузка файла

Я пытаюсь загрузить изображение профиля без ActiveForm или Model.

Согласно Yii2 документам мы можем использовать AdHoc Validation Rule, В этом примере используется проверка электронной почты, но мне нужна проверка файла.

Что я пробовал:

public function actionPicture() {

/* @var $user \app\models\User */
/* @var $validator \yii\validators\FileValidator */

$validator = new FileValidator(['extensions' => ['png','jpg']]); // Setting Allowed Extensions

$file = UploadedFile::getInstanceByName('avatar'); // Get File Object byName

if( $validator->validate($file, $errors) ) { // Validate here
$user = User::findOne(['id' => Yii::$app->user->getId()]);
$user->avatar = 'profile-'.$user->id.'.'.$file->getExtension();
if($user->save(false)) {
$file->saveAs(Yii::getAlias('@upload_dir').'/'.$user->avatar);
Yii::$app->user->setIdentity($user);
yii::$app->session->setFlash('success','Profile Picture updated successfully');
}

} else {
yii::$app->session->setFlash('danger',$errors);
}

return $this->redirect(['index']);

}

Мой вопрос: в приведенном выше коде это стандартный способ использования FileValidator без активных форм.

Примечание: я знаю, что мы можем использовать Загрузка файла Yii2, но он использует модель, которую я не хотел

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]