Imperavi нет загрузки картинок и файлов

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
quinlena
Сообщения: 111
Зарегистрирован: 2013.07.22, 12:49

Imperavi нет загрузки картинок и файлов

Сообщение quinlena »

День добрый! Подключила обертку для имперави https://github.com/vova07/yii2-imperavi-widget . Что-то с картинками и файлами разобраться не могу. когда выбираю картинку, в редакторе она не отображается. При нажатии на сохранение формы получается следующая ошибка:
exception 'yii\web\BadRequestHttpException' with message 'Unable to verify your data submission.' in C:\OpenServer\domains\tour\vendor\yiisoft\yii2\web\Controller.php:110
Stack trace:
#0 C:\OpenServer\domains\tour\vendor\yiisoft\yii2\base\Controller.php(149): yii\web\Controller->beforeAction(Object(yii\base\InlineAction))
#1 C:\OpenServer\domains\tour\vendor\yiisoft\yii2\base\Module.php(455): yii\base\Controller->runAction('create', Array)
#2 C:\OpenServer\domains\tour\vendor\yiisoft\yii2\web\Application.php(83): yii\base\Module->runAction('posts/create', Array)
#3 C:\OpenServer\domains\tour\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#4 C:\OpenServer\domains\tour\backend\web\index.php(18): yii\base\Application->run()
#5 {main}

Код в контроллере вот такой:

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

public function actions()
{
   return [
       'error' => [
           'class' => 'yii\web\ErrorAction',
       ],
'imageupload' => [
           'class' => 'vova07\imperavi\actions\UploadAction',
           'url' => '../../images/', // Directory URL address, where files are stored.
           'path' => '@webroot/images/' // Or absolute path to directory where files are stored.
       ],
'imagesget' => [
           'class' => 'vova07\imperavi\actions\GetAction',
           'url' => '../../images/', // Directory URL address, where files are stored.
           'path' => '@webroot/images/', // Or absolute path to directory where files are stored.
           'type' => '0',
       ],
'filesget' => [
           'class' => 'vova07\imperavi\actions\GetAction',
           'url' => '../../files/', // Directory URL address, where files are stored.
           'path' => '@webroot/files/', // Or absolute path to directory where files are stored.
           'type' => '1',//GetAction::TYPE_FILES,
       ],
'fileupload' => [
           'class' => 'vova07\imperavi\actions\UploadAction',
           'url' => '../../files/', // Directory URL address, where files are stored.
           'path' => '@webroot/files/' // Or absolute path to directory where files are stored.
       ],
   ];
} 
В форме вот так:

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

<? echo $form->field($model, 'yii2_posts_content')->widget(Widget::className(), [
    'settings' => [
        'lang' => 'ru',
        'minHeight' => 200,
        'pastePlainText' => true,
        'buttonSource' => true,
        'plugins' => [
            'clips',
            'fullscreen'
        ],
        'imageUpload' => Url::to(['/posts/imageupload']),
'imageManagerJson' => Url::to(['/posts/imagesget']),
'fileManagerJson' => Url::to(['/posts/filesget']),
'fileUpload' => Url::to(['/posts/fileupload'])

    ]
]);?>
В layout/main.php прописано

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

  <?= Html::csrfMetaTags() ?>
Подскажите, пожалуйста, в чем может быть причина?

Картинка загрузилась в папку. Путь к ней http://tour/backend/images/54b6b52fa9319.jpg
Но при попытке открыть по ссылке ничего не показывает. Похоже где-то проблема в настройках?
Так вообще форма с редактором находится по ссылке http://tour/backend/web/index.php?r=posts%2Fupdate&id=3
Может проблема в .htaccess? Корневой файл выглядит так:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# Если запрос начинается с /admin, то заменяем на /backend/web/
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin\/?(.*) /backend/web/$1

# Добавляем другой запрос /frontend/web/$1
RewriteCond %{REQUEST_URI} !^/(frontend/web|backend/web|admin)
RewriteRule (.*) /frontend/web/$1

# Если frontend запрос
RewriteCond %{REQUEST_URI} ^/frontend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/web/index.php

# Если backend запрос
RewriteCond %{REQUEST_URI} ^/backend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /backend/web/index.php
Последний раз редактировалось quinlena 2015.01.14, 23:31, всего редактировалось 2 раза.
ram0973
Сообщения: 54
Зарегистрирован: 2010.06.12, 22:18
Откуда: Набережные Челны
Контактная информация:

Re: Imperavi нет загрузки картинок и файлов

Сообщение ram0973 »

а <?= Html::csrfMetaTags() ?> находится в <head> ? Ещё в контроллере можно для проверки временно сделать public $enableCsrfValidation = false; ещё попробовать в форму засунуть <input type="hidden" value="<?=Yii::$app->request->getCsrfToken()?>">
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Imperavi нет загрузки картинок и файлов

Сообщение vitalik1183 »

Как вариант для проверки, добавьте в контроллере:

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

public $enableCsrfValidation = false; 
Yii2!
quinlena
Сообщения: 111
Зарегистрирован: 2013.07.22, 12:49

Re: Imperavi нет загрузки картинок и файлов

Сообщение quinlena »

ram0973 писал(а):а <?= Html::csrfMetaTags() ?> находится в <head> ? Ещё в контроллере можно для проверки временно сделать public $enableCsrfValidation = false; ещё попробовать в форму засунуть <input type="hidden" value="<?=Yii::$app->request->getCsrfToken()?>">
Да, находится в head.
ram0973
Сообщения: 54
Зарегистрирован: 2010.06.12, 22:18
Откуда: Набережные Челны
Контактная информация:

Re: Imperavi нет загрузки картинок и файлов

Сообщение ram0973 »

а в форме токен есть? если исходный код в браузере глянуть
ram0973
Сообщения: 54
Зарегистрирован: 2010.06.12, 22:18
Откуда: Набережные Челны
Контактная информация:

Re: Imperavi нет загрузки картинок и файлов

Сообщение ram0973 »

у автора в закрытых issue есть такое https://github.com/vova07/yii2-imperavi ... /issues/11
quinlena
Сообщения: 111
Зарегистрирован: 2013.07.22, 12:49

Re: Imperavi нет загрузки картинок и файлов

Сообщение quinlena »

ram0973 писал(а):а в форме токен есть? если исходный код в браузере глянуть
Посмотрела, вот что там:
<meta name="csrf-token" content="VzJuOWFMeVNuWwN6THVJGy5/Q38ZKilhH2gBTSs1DQQueQx/WAQ2DA==">
Я вообще правильно понимаю, что если я нажала на кнопку, выбрала файл или картинку, то он должен загрузится в папку? и отобразиться сразу в редакторе?
Последний раз редактировалось quinlena 2015.01.14, 21:20, всего редактировалось 1 раз.
quinlena
Сообщения: 111
Зарегистрирован: 2013.07.22, 12:49

Re: Imperavi нет загрузки картинок и файлов

Сообщение quinlena »

vitalik1183 писал(а):Как вариант для проверки, добавьте в контроллере:

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

public $enableCsrfValidation = false;
Так сохраняет путь до картинке, но картинка в редакторе не отображается.
При попытке выбрать файл вообще пишет undefined в редакторе
dmg
Сообщения: 685
Зарегистрирован: 2012.10.15, 03:09

Re: Imperavi нет загрузки картинок и файлов

Сообщение dmg »

quinlena писал(а): Картинка загрузилась в папку. Путь к ней http://tour/backend/images/54b6b52fa9319.jpg
а что в браузере и в логах при открытии картинки напрямую?
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Imperavi нет загрузки картинок и файлов

Сообщение vova07 »

Вероятнее всего у вас не те права для папки заданы, и картинки как таковы не загружаютя. Попробуйте задать ей 0777 и повторить попытку.
Ответить