Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2017, 04:14   #1
QwErTy1966
Пользователь
 
Регистрация: 07.01.2017
Сообщений: 10
По умолчанию Ошибка в в загрузке файла на сайт.YII2

Доброго времени суток .
Не загружается картинка .Сайт на локале картинки в папку загруженные
выдаёт ошибку:
move_uploaded_file(/var/www/test.com/basic/web/img/users/HB5v9MdekBrkO95LQz6WnbNYigaRqFTS.jp g): failed to open stream: No such file or directory
Как можно её исправить?
если нужен какой файл я предоставлю.
QwErTy1966 вне форума Ответить с цитированием
Старый 11.01.2017, 11:54   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Нужно бы посмотреть код соответствующего action.
http://stackoverflow.com/a/30207855
Andkorol вне форума Ответить с цитированием
Старый 11.01.2017, 18:23   #3
QwErTy1966
Пользователь
 
Регистрация: 07.01.2017
Сообщений: 10
По умолчанию

Вот но на всякий случай и другие и другие методы
если не чего не менять ,то проходит без ошибки и такая картинка как в коде 'default.png'; есть.

часть Модели

PHP код:
  public function attributeLabels()
    {
        return [
            
'name' => Yii::t('userextended''Name'),
            
'firstname' => Yii::t('userextended''Firstname'),
            
'lastname' => Yii::t('userextended''Lastname'),
            
'birthday' => Yii::t('userextended''Birthday'),
        ];
    }

public function 
uploadAvatar($filePath)
    {
        
$file UploadedFile::getInstance($this'avatar');

        
// if no file was uploaded abort the upload
        
if (empty($file)) {
            return 
false;
        } else {

            
// file extension
            
$fileExt $file->extension;
            
// purge filename
            
$fileName Yii::$app->security->generateRandomString();
            
// update file->name
            
$file->name $fileName.".{$fileExt}";
            
// update avatar field
            
$this->avatar $fileName.".{$fileExt}";
            
// save images to imagePath
            
$file->saveAs($filePath.$fileName.".{$fileExt}");

            
// the uploaded file instance
            
return $file;
        }
    }

    
/**
     * fetch stored image file name with complete path
     *
     * @return string
     */
    
public function getImagePath()
    {
        return 
$this->avatar Yii::getAlias(Yii::$app->getModule('userextended')->avatarPath).$this->avatar null;
    }

    
/**
     * fetch stored image url
     *
     * @return string
     */
    
public function getImageUrl()
    {
        if ( !
is_null($this->getAccountAttributes()) && !$this->avatar )
        {
            
$imageURL $this->getSocialImage();

        } else {

            
$avatar   $this->avatar $this->avatar 'default.png';
            
$imageURL Yii::getAlias(Yii::$app->getModule('userextended')->avatarURL).$avatar;
        }

        return 
$imageURL;
    } 
// контролер
PHP код:
 public function actionProfile()
    {
        
// Load Model
        
$model       $this->finder->findProfileById(Yii::$app->user->identity->getId());
        
// Load Old Image
        
$oldImage    $model->avatar;
        
// Load avatarPath from Module Params
        
$avatarPath  Yii::getAlias(Yii::$app->getModule('userextended')->avatarPath);

        
// Create uploadAvatar Instance
        
$image $model->uploadAvatar($avatarPath);

        
// Ajax Validation
        
$this->performAjaxValidation($model);

        if (
$model->load(Yii::$app->request->post()) && $model->save()) {

            
// revert back if no valid file instance uploaded
            
if ($image === false) {
                
$model->avatar $oldImage;
            } else {
                
                
// if is there an old image, delete it
                
if($oldImage)
                {
                    
$model->deleteImage($oldImage);
                }

                
// upload new avatar
                
$model->avatar $image->name;
            }

            
Yii::$app->getSession()->setFlash('success'Yii::t('user''Your profile has been updated'));

            return 
$this->refresh();
        }

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


Последний раз редактировалось QwErTy1966; 11.01.2017 в 19:47. Причина: форматирование
QwErTy1966 вне форума Ответить с цитированием
Старый 11.01.2017, 18:47   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Что можно понять в такой вот «лапше»?
Форматируй код в сообщениях:
Andkorol вне форума Ответить с цитированием
Старый 11.01.2017, 19:49   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ответ-то по ссылке хоть читал?
Цитата:
Call $model->save(); in controller

before

$model->file->saveAs();
У тебя же наоборот:
сначала идёт saveAs() через:
PHP код:
        // Create uploadAvatar Instance 
        
$image $model->uploadAvatar($avatarPath); 
– а потом только выполняется $model->save()
Andkorol вне форума Ответить с цитированием
Старый 11.01.2017, 21:32   #6
QwErTy1966
Пользователь
 
Регистрация: 07.01.2017
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Ответ-то по ссылке хоть читал?
У тебя же наоборот:
сначала идёт saveAs() через:
PHP код:
        // Create uploadAvatar Instance 
        
$image $model->uploadAvatar($avatarPath); 
– а потом только выполняется $model->save()
Читал и пробовал , http://joxi.ru/D2PGJDBibGbNm3 пока не получается можно немножко по яснея .

Последний раз редактировалось QwErTy1966; 11.01.2017 в 21:40.
QwErTy1966 вне форума Ответить с цитированием
Старый 11.01.2017, 21:47   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ты свой метод uploadAvatar в модели видел?
До сих пор не понимаешь, где у тебя saveAs() срабатывает?
Просто перенести $image = $model->uploadAvatar($avatarPath); в код ниже, после выполнения $model->save() – видимо тоже слишком сложно...
Код, судя по всему, скопипастил где-то?
Потому, что явно не понимаешь, что и зачем он делает.
Отсюда и все проблемы.
Andkorol вне форума Ответить с цитированием
Старый 11.01.2017, 23:12   #8
QwErTy1966
Пользователь
 
Регистрация: 07.01.2017
Сообщений: 10
По умолчанию

Ты свой метод uploadAvatar в модели видел?
До сих пор не понимаешь, где у тебя saveAs() срабатывает?
Просто перенести $image = $model->uploadAvatar($avatarPath); в код ниже, после выполнения $model->save()
//
конешно видел переносил уже и вверх и вниз в бок ,возможно глюкануло при установки, у меня было такое с Rbac.
..
Код, судя по всему, скопипастил где-то?
//
Нет слишком долго копипастить )).Это - новое расширение для модуля dektrium и устонавливается оно с помошью накатки миграции и команды composer .
Автор предупредил что оно ещё очень сырое и находится на стадии разработки. После установки возникло сразу три проблемы ,капча не проходит валидацию,неизвестное свойство при авторизации и не удалось открыть поток при загрузки файлов.На капчу у меня сил хватило потом решил поискать решение сдесь и на YII-форуме.
QwErTy1966 вне форума Ответить с цитированием
Старый 12.01.2017, 00:35   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ну так не пользуй сырое.
По ссылке есть пример кода загрузки изображения – используй его, ничего сложного.
Andkorol вне форума Ответить с цитированием
Старый 12.01.2017, 01:05   #10
QwErTy1966
Пользователь
 
Регистрация: 07.01.2017
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Ну так не пользуй сырое.
По ссылке есть пример кода загрузки изображения – используй его, ничего сложного.
Решено .Проблема была проще, неправильный путь и права на папку,поставил 777 -заработало.но действительно сырое.

Последний раз редактировалось QwErTy1966; 12.01.2017 в 01:08.
QwErTy1966 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При загрузке формы из файла *.dfm ошибка Teoret Компоненты Delphi 9 29.10.2014 13:10
Ошибка при загрузке файла (через IdHTTP ) mogo Общие вопросы Delphi 16 15.02.2014 13:58
Ошибка при загрузке массива из файла Damik Общие вопросы Delphi 1 14.02.2013 10:46
Ошибка при загрузке XML файла Alter Общие вопросы Delphi 4 25.09.2011 13:58
Ошибка при загрузке файла html Ign Microsoft Office Excel 1 11.11.2007 13:55