Как загрузить файл?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
des1roer
Сообщения: 390
Зарегистрирован: 2015.02.06, 17:03
Контактная информация:

Как загрузить файл?

Сообщение des1roer » 2015.07.02, 07:45

пытаюсь на базе yii 2 basic загрузить изображение.
пошел по пути инструкции
https://github.com/yiisoft/yii2/blob/ma ... -upload.md
localhost\gameproj\models\UploadForm.php

Код: Выделить всё

<?php
namespace app\models;

use yii\base\Model;
use yii\web\UploadedFile;

/**
 * UploadForm is the model behind the upload form.
 */
class UploadForm extends Model
{
    /**
     * @var UploadedFile file attribute
     */
    public $file;

    /**
     * @return array the validation rules.
     */
    public function rules()
    {
        return [
            [['file'], 'file'],
        ];
    }
} 

localhost\gameproj\views\upload\index.php

Код: Выделить всё

<?php
use yii\widgets\ActiveForm;
?>

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>

<?= $form->field($model, 'file')->fileInput() ?>

<button>Отправить</button>

<?php ActiveForm::end() ?>

localhost\gameproj\controllers\UploadController.php

Код: Выделить всё

<?php
namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\UploadForm;
use yii\web\UploadedFile;

class SiteController extends Controller
{
    public function actionUpload()
    {
        $model = new UploadForm();

        if (Yii::$app->request->isPost) {
            $model->file = UploadedFile::getInstance($model, 'file');

            if ($model->file && $model->validate()) {                
                $model->file->saveAs('uploads/' . $model->file->baseName . '.' . $model->file->extension);
            }
        }

        return $this->render('upload', ['model' => $model]);
    }
} 

http://gameproj/upload/
получаю
Unknown Class – yii\base\UnknownClassException
Unable to find 'app\controllers\UploadController' in file: D:\open\OpenServer\domains\localhost\gameproj/controllers/UploadController.php. Namespace missing?

mickgeek
Сообщения: 957
Зарегистрирован: 2014.05.31, 20:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Как загрузить файл?

Сообщение mickgeek » 2015.07.02, 08:01

Код: Выделить всё

class SiteController extends Controller

Аватара пользователя
des1roer
Сообщения: 390
Зарегистрирован: 2015.02.06, 17:03
Контактная информация:

Re: Как загрузить файл?

Сообщение des1roer » 2015.07.02, 08:23

не понял

mickgeek
Сообщения: 957
Зарегистрирован: 2014.05.31, 20:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Как загрузить файл?

Сообщение mickgeek » 2015.07.02, 08:26

UploadController или SiteController?

Аватара пользователя
SwoDs
Сообщения: 159
Зарегистрирован: 2014.09.03, 10:12

Re: Как загрузить файл?

Сообщение SwoDs » 2015.07.02, 08:58

des1roer писал(а):не понял
Название файла контроллера и сам класс контроллера разные.

Аватара пользователя
des1roer
Сообщения: 390
Зарегистрирован: 2015.02.06, 17:03
Контактная информация:

Re: Как загрузить файл?

Сообщение des1roer » 2015.07.02, 09:40

действительно просмотрел

Код: Выделить всё

<?php
namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\UploadForm;
use yii\web\UploadedFile;

class UploadController extends Controller
{
    public function actionUpload()
    {
        $model = new UploadForm();

        if (Yii::$app->request->isPost) {
            $model->file = UploadedFile::getInstance($model, 'file');

            if ($model->file && $model->validate()) {                
                $model->file->saveAs('uploads/' . $model->file->baseName . '.' . $model->file->extension);
            }
        }

        return $this->render('index', ['model' => $model]);
    }
} 
тогда http://gameproj/upload/upload
все ок

Аватара пользователя
SwoDs
Сообщения: 159
Зарегистрирован: 2014.09.03, 10:12

Re: Как загрузить файл?

Сообщение SwoDs » 2015.07.02, 09:55

des1roer писал(а): тогда http://gameproj/upload/upload
А зачем ссылка на ваш локальный сайт? :)

Аватара пользователя
des1roer
Сообщения: 390
Зарегистрирован: 2015.02.06, 17:03
Контактная информация:

Re: Как загрузить файл?

Сообщение des1roer » 2015.07.02, 10:44

ну я указал как вызвать контролер. а то кто нить посмотрел мой пример и стал ломиться на http://gameproj/upload/ и долго бы думал что неправильно

Ответить