Почему из за изображения Bad Request (#400) ?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
alexa777
Сообщения: 280
Зарегистрирован: 2016.03.01, 17:38

Почему из за изображения Bad Request (#400) ?

Сообщение alexa777 » 2018.10.26, 19:14

Делаю редактирование поста, при нажатии Сохранить выдает ошибку Bad Request (#400)
Выяснил что ошибка из за вывода картинки, если этот код убрать из вьюшки form

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

       <?php 
   $img = $image->getPostImg($model->id);

           if(!empty($img->name)){
                
                 echo Html::img('https://site.ku/frontend/web/' . $img->name, $options = ['id' => 'blah', 'style' => ['width' => '180px']]);
            } 

?>
то ошибка пропадает и все сохраняется, само поле остается и нормально работает

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

<?= $form->field($image, 'image')->fileInput(['id' => 'images-image', 'name' => 'Images[image]']) ?>

Причем когда захожу в редактировании поста и смотрю исходный код то там есть картинка но она не выводится и по нажатии на ссылку этой картинки выдают туже ошибку, но картинка етсь

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

<img id="blah" src="https://site.ku/frontend/web/uploads/post/post_5bd33b14ab799.png" alt="" style="width: 180px;">
Делаю я это в админке в backend от админа с прописанным доступом а картинки сохраняю в frontend

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

 'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'allow' => true,
                        'roles' => ['AdminPanel'],
                    ],
                ],
            ],  

Я так понимаю ошибка в доступах? что не так?

Аватара пользователя
Dominus
Сообщения: 799
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Почему из за изображения Bad Request (#400) ?

Сообщение Dominus » 2018.10.28, 22:44

Пробуйте так:

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

<?php 
    $img = $image->getPostImg($model->id);
    if(isset($img->name) && !empty($img->name)) {
        echo Html::img(Yii::$app->urlManager->hostInfo .'/uploads/post/'. $img->name, ['id' => 'blah', 'style' => 'width:180px']);
    }
?>
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!

Аватара пользователя
Dominus
Сообщения: 799
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Почему из за изображения Bad Request (#400) ?

Сообщение Dominus » 2018.10.28, 23:26

Еще можно в common/config/bootstrap.php добавить алиас

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

Yii::setAlias('@upload', '@frontend/web');
Загружать файлы используя данный алиас:

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

$path = Yii::getAlias('@upload/uploads/post/');
И получать ссылку на файл так:

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

$url = Yii::$app->urlManager->hostInfo . '/uploads/post/' . $filename;
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!

alexa777
Сообщения: 280
Зарегистрирован: 2016.03.01, 17:38

Re: Почему из за изображения Bad Request (#400) ?

Сообщение alexa777 » 2018.11.07, 07:40

Dominus писал(а):
2018.10.28, 23:26
Еще можно в common/config/bootstrap.php добавить алиас

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

Yii::setAlias('@upload', '@frontend/web');
Загружать файлы используя данный алиас:

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

$path = Yii::getAlias('@upload/uploads/post/');
И получать ссылку на файл так:

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

$url = Yii::$app->urlManager->hostInfo . '/uploads/post/' . $filename;
Попробовал, все таже ошибка, пробую дебажить после

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

 if ($model->load(Yii::$app->request->post())) {
             var_dump($model);
             die;
Сюда не доходит нечего, а стоит убрать эту ссылку

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

<?php 
    $img = $image->getPostImg($model->id);
    if(isset($img->name) && !empty($img->name)) {
        echo Html::img(Yii::$app->urlManager->hostInfo .'/uploads/post/'. $img->name, ['id' => 'blah', 'style' => 'width:180px']);
    }
?>
И все работает как надо. Есть у меня мнение что это из за Rbac но вообще мыслей нет как это исправить и как это влияет

вот полный лог ошибки
yii\web\BadRequestHttpException: Не удалось проверить переданные данные. in /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/web/Controller.php:166
Stack trace:
#0 /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/base/Controller.php(155): yii\web\Controller->beforeAction(Object(yii\base\InlineAction))
#1 /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/base/Module.php(528): yii\base\Controller->runAction('create', Array)
#2 /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction('post/create', Array)
#3 /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
#4 /var/www/alex/data/www/site.ku/backend/web/index.php(17): yii\base\Application->run()
#5 {main}
Последний раз редактировалось alexa777 2018.11.07, 09:31, всего редактировалось 1 раз.

alexa777
Сообщения: 280
Зарегистрирован: 2016.03.01, 17:38

Re: Почему из за изображения Bad Request (#400) ?

Сообщение alexa777 » 2018.11.07, 07:58

alexa777 писал(а):
2018.11.07, 07:40
Dominus писал(а):
2018.10.28, 23:26
Еще можно в common/config/bootstrap.php добавить алиас

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

Yii::setAlias('@upload', '@frontend/web');
Загружать файлы используя данный алиас:

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

$path = Yii::getAlias('@upload/uploads/post/');
И получать ссылку на файл так:

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

$url = Yii::$app->urlManager->hostInfo . '/uploads/post/' . $filename;
Попробовал, все таже ошибка, пробую дебажить после

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

 if ($model->load(Yii::$app->request->post())) {
             var_dump($model);
             die;
Сюда не доходит нечего, а стоит убрать эту ссылку

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

<?php 
    $img = $image->getPostImg($model->id);
    if(isset($img->name) && !empty($img->name)) {
        echo Html::img(Yii::$app->urlManager->hostInfo .'/uploads/post/'. $img->name, ['id' => 'blah', 'style' => 'width:180px']);
    }
?>
И все работает как надо. Есть у меня мнение что это из за Rbac но вообще мыслей нет как это исправить и как это влияет

вот полный лог ошибки
yii\web\BadRequestHttpException: Не удалось проверить переданные данные. in /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/web/Controller.php:166
Stack trace:
#0 /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/base/Controller.php(155): yii\web\Controller->beforeAction(Object(yii\base\InlineAction))
#1 /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/base/Module.php(528): yii\base\Controller->runAction('create', Array)
#2 /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction('post/create', Array)
#3 /var/www/alex/data/www/site.ku/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
#4 /var/www/alex/data/www/site.ku/backend/web/index.php(17): yii\base\Application->run()
#5 {main}

dmg
Сообщения: 671
Зарегистрирован: 2012.10.15, 03:09

Re: Почему из за изображения Bad Request (#400) ?

Сообщение dmg » 2018.11.07, 09:22

Смотрите логи web-сервера. Где у вас корень сайта? Это "https://site.ku/frontend/web/" неправильно как-то.

alexa777
Сообщения: 280
Зарегистрирован: 2016.03.01, 17:38

Re: Почему из за изображения Bad Request (#400) ?

Сообщение alexa777 » 2018.11.07, 09:32

dmg писал(а):
2018.11.07, 09:22
Смотрите логи web-сервера. Где у вас корень сайта? Это "https://site.ku/frontend/web/" неправильно как-то.
да это

dmg
Сообщения: 671
Зарегистрирован: 2012.10.15, 03:09

Re: Почему из за изображения Bad Request (#400) ?

Сообщение dmg » 2018.11.07, 19:26

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

echo Yii::$app->urlManager->hostInfo .'/uploads/post/';
die();

Ответить