Задать вопрос
@alexsteadfast
I am noob

Почему не загружается файл с формы в нужную дерикторию?

Есть форма, с которой данные загружаются в БД и выводятся на другой страницу. Необходимо добавить на форму загрузку файла.

Форма
<?php

/* @var $this yii\web\View */
/* @var $name string */
/* @var $message string */
/* @var $exception Exception */

use yii\helpers\Html;
use yii\widgets\ActiveForm;
$status = Yii::$app->user->identity->status;
?>
<div>
<? if($status == 'admin'){ ?>
<?php $form = ActiveForm::begin([ 'method' => 'POST','id' => 'addproject-form', 'options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($form_model, 'name') ?>
<?= $form->field($form_model, 'url') ?>
<?= $form->field($form_model, 'resurs') ?>
<?= $form->field($form_model, 'studio') ?>
<?= $form->field($form_model, 'pic')->fileInput() ?>
<?= Html::submitButton('Добавить', ['class' => 'btn btn-success']) ?>
<?php ActiveForm::end() ?>
<? }
?>
</div>


Контроллер
public function actionAddproject()
    {
		$this->enableCsrfValidation = false;
		
		$form_model = new ProjectAddForm();
				if($form_model->load(\Yii::$app->request->post())){
					
					$name_form = $_POST['ProjectAddForm']['name'];
					$url_form = $_POST['ProjectAddForm']['url'];
					$resurs_form = $_POST['ProjectAddForm']['resurs'];
					$studio = $_POST['ProjectAddForm']['studio'];
					$pic = $_FILES['ProjectAddForm']['name']['pic'];
					
				    $form_model -> pic = UploadedFile::getInstance($form_model,'pic');		
			           $form_model -> pic -> saveAs('projects/' .$pic);

				    $date = new Projects();

			
						 $date ->name = $name_form;
						 $date ->url = $url_form;
						 $date ->resurs = $resurs_form;
						 $date ->studio = $studio;
						 $date ->pic = $pic;
						 $date->save();			
				}	
        return $this->render('addproject', compact('form_model'));	
    }


Данные успешно сохраняются в БД, но сам файл в нужную папку не сохраняется.
  • Вопрос задан
  • 59 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы