CUploadedFile::getInstance

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

CUploadedFile::getInstance

Сообщение ninzzo »

Хочу загрузить файл.
Есть поле input с именем diplom

В контроллере указываю:

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


$model->diplom=CUploadedFile::getInstance($model,'diplom');
$time = time();
move_uploaded_file($_FILES["diplom"]["tmp_name"], "/images/".$time.''.$_FILES["diplom"]["name"]);
 
Вместо того что бы положить файл в папку мне выдается хрень "Undefined index: diplom"


Что за балда ? Как тогда мой файл называется ??? Что прописать что бы он сохранился все таки в папку ?

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

$model->diplom->saveAs('path/to/localFile'); 
не предлагать. у меня не хватает интеллекта понять что это за срань и почему она не работает.

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

Re: CUploadedFile::getInstance

Сообщение mickgeek »

Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

Re: CUploadedFile::getInstance

Сообщение ninzzo »

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

CUploadedFile::name
CUploadedFile::tempName

Я уже смотрю тот мануал. Но как это использовать в коде ?
Еще на английском все. Покажите пример плиз!

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

$sssss=CUploadedFile::getName($model,'diplom');
echo $sssss; 
выдает "Не определено свойство "SiteController._name"."



Это все ерунда.
Есть у кого шаблон как тупо загрузить файл на сервер ?
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: CUploadedFile::getInstance

Сообщение flashimage »

Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

Re: CUploadedFile::getInstance

Сообщение ninzzo »

да и это уже перечитал вдоль и поперек. я уже пол дня не могу загрузить файл на сервер на yii )))

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

if($model->save()){
                $model->image->saveAs('path/to/localFile');
                // перенаправляем на страницу, где выводим сообщение об
                // успешной загрузке
            } 
$model->image->saveAs('path/to/localFile'); ЧТО МНЕ ТУТ УКАЗАТЬ??? нужно в папку image которая в корне лежит. Перепробовл сотни вариантов все время ошибка директории.

Если это не катит, обьяснте как сделать на быдлокоде:

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

move_uploaded_file($_FILES["diplom"]["tmp_name"], "/images/".$time.''.$_FILES["diplom"]["name"]); 
в чем тут ошибка ?
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: CUploadedFile::getInstance

Сообщение flashimage »

Вот пример

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

                        
$path = '/images/uploads/' . uniqid() . '-' . $uploadedFile->getName();
$uploadedFile->saveAs(Yii::getPathOfAlias('webroot') . $path);
 
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

Re: CUploadedFile::getInstance

Сообщение ninzzo »

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

$path = '/images/uploads/' . uniqid() . '-' . $uploadedFile->getName();
$uploadedFile->saveAs(Yii::getPathOfAlias('webroot') . $path);
йеееееееееееееее!!! Загрузилось!

капец кто эти мануалы пишет, блин там все очевидно написано, а самой непонятной строки не написано=))

Почему сразу в кукбуке этого не укажут и что это за стрем такой. Как до этого можно догадаться и почему нельзя было указать "$model->diplom->saveAs('/images/' . $path);" ?! Разработчики специально заморачивают наверное ;))

СПАСИБО!


п.с.
Вот еще одна жесть на прошлой неделе пол дня потратил пока ее нашел

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

$directory = realpath(Yii::app()->basePath.'/../images/').'/';
        $file = md5(date('YmdHis')).'.'.pathinfo(@$_FILES['file']['name'], PATHINFO_EXTENSION); 
из тех же заморочек разрабов)
Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

Re: CUploadedFile::getInstance

Сообщение ninzzo »

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

public function actionRegistr()
    {
        $model=new User;
        if(isset($_POST['User']))
        {    
            
            $model->attributes=$_POST['User'];
            $model->diplom=CUploadedFile::getInstance($model,'diplom');


            if($model->save())
            {    
                $path = '/images/' . uniqid() . '-' . $model->diplom->getName();
                $model->diplom->saveAs(Yii::getPathOfAlias('webroot') . $path);
                $this->redirect(Yii::app()->user->returnUrl);
            }

                
        }
        $this->render('registr', array('model'=>$model));
    } 
Вот рабочий код контроллера. Но теперь в папку пишется файл с одним именем, а в базу пишется с другим именем.

Где указать $model->diplom = 'нужное имя' что бы и в папку и в базу данных писало одинаковые имена?
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: CUploadedFile::getInstance

Сообщение flashimage »

$path = '/images/'. $model->diplom->getName();
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

Re: CUploadedFile::getInstance

Сообщение ninzzo »

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

$path = '/images/'. $model->diplom->getName(); 
да я так и сделал, но теперь сохраняется имя без уникального кода ;)) А хотелось бы что бы каждый файл уникальным был)))

А вы случаем не знаете как сделать multiple в форме ниже ?

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

    <?php echo $form->fileField($model,'diplom', array('class'=>'input-file')); ?>
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: CUploadedFile::getInstance

Сообщение flashimage »

Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
sluchainiyznak
Сообщения: 617
Зарегистрирован: 2013.05.19, 17:51
Откуда: ХМАО-Югра, г. Сургут
Контактная информация:

Re: CUploadedFile::getInstance

Сообщение sluchainiyznak »

не понимаю зачем так растянули тему. Есть отличный туториал - http://yiiframework.ru/doc/cookbook/ru/ ... .fat.model
Ответить