Ошибка JSON в модуле One Click Upload 2

Главные вкладки

Аватар пользователя shumar shumar 4 октября 2016 в 8:14

Установил модуль по инструкции
При нажатии на кнопку в редакторе CKEditor 4, выбираю фотографию и нажимаю сохранить. и выскакивает ошибка
JSON ошибка
Файлы на сервер в папку public://inline/images закачиваются.
Уже перерыл весь интернет и такое впечатление что никто с такой проблемой не встречался, подскажите как решить, очень нужно.
Версия jQuery 1.10, пробовал понижать до 1.7, тот же результат.

Лучший ответ

Аватар пользователя shumar shumar 6 октября 2016 в 21:45
1

Методом тыка (отключения группы модулей) выяснилось что у One Click Upload 2 конфликт с модулем Plus Gallery Formatter, в чем конфликт, я разбираться не стал, отключил этот модуль, можно его заменить аналогом, благо их много.
Всем большое спасибо за помощь в решении проблемы.

Комментарии

Аватар пользователя Studio VIZA Studio VIZA 4 октября 2016 в 8:43

Пытался воспроизвести ошибку, не удалось. Научите, как вы это умудряетесь делать.

Пишите версию СКедитора, версию и путь библиотеки.

Аватар пользователя shumar shumar 4 октября 2016 в 9:03

Director-cemetery wrote:

Пытался воспроизвести ошибку, не удалось. Научите, как вы это умудряетесь делать.
Пишите версию СКедитора, версию и путь библиотеки.


Версия СКедитора 4.5.11 (модуль Версия: 7.x-1.17), путь библиотеки /libraries/ckeditor.
В отчете о состоянии никаких ошибок нет.
И в журнал ничего не записывается об этой ошибке
xakd wrote:

Сдаётся мне какие-то у вас самописные модули стоят


Все модули ставил с www.drupal.org, сам я не силен в программировании, написать модуль не хватит знаний.
Подскажите с каким модулем возможен конфликт, или в каких настройках искать проблему. Спасибо

Аватар пользователя shumar shumar 4 октября 2016 в 10:01

После того как я отключил модуль File Field Sources ошибка изменилась:
news error
Возможно где то конфликт модулей, кто-то знает с какими модулями конфликтует One Click Upload 2
В журнале появилась ошибка:
«PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'public://inline/images/04-10-2016_8-09-37_0.jpg' for key 'uri': INSERT INTO {file_managed} (uid, filename, uri, filemime, filesize, status, timestamp, type) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7); Array ( [:db_insert_placeholder_0] => 1 [:db_insert_placeholder_1] => 04-10-2016 8-09-37.jpg [:db_insert_placeholder_2] => public://inline/images/04-10-2016_8-09-37_0.jpg [:db_insert_placeholder_3] => image/jpeg [:db_insert_placeholder_4] => 25445 [:db_insert_placeholder_5] => 0 [:db_insert_placeholder_6] => 1475563120 [:db_insert_placeholder_7] => image ) в функции drupal_write_record() (строка 7361 в файле /home/kguapp/public_html/includes/common.inc).»

Аватар пользователя Studio VIZA Studio VIZA 4 октября 2016 в 10:29

loopy1492 Credit атрибуции: loopy1492 прокомментировал5 years ago
Я считаю, что это случилось с видом после того, как мы имели PHP тайм-аут.

greggles Credit атрибуции: greggles прокомментировал5 years ago
Категория: ошибка " поддержка
Статус: Отложено (сопровождающий нуждается в большем количестве информации) " Исправлена
Я считаю, что это вызвано проблемами разрешений на каталоги.

Убедитесь, что все, что пользователь запускает скрипт имеет правильные права доступа к каталогу файлов и всех подкаталогов.

https://www.drupal.org/node/1163740

Аватар пользователя shumar shumar 4 октября 2016 в 10:46

в /default/files стоят права на каталоги и подкаталоги 775, а на файлы 664
Проблему нужно искать в правах доступа к папкам в /default/files?

Аватар пользователя shumar shumar 4 октября 2016 в 16:13

Переустановка модуля не решает проблему. Пробовал несколько раз.
Нашел описание такой же ошибки но для версии модуля One Click Upload 1.5 и редактора bueditor

http://xandeadx.ru/blog/drupal/335#comment-7244
Автор модуля предложил:
«попробуйте в ocupload/static/bueditor.js перед
if (serverData.substring(0, 1) != '{') {
вставить
serverData = jQuery.trim(serverData);»
И отписались что все заработало. Но serverData в версии 2 нигде нет. Sad
Пробовал ставить редактор bueditor, ошибка та же самая.

Аватар пользователя shumar shumar 4 октября 2016 в 16:16

bumble wrote:

Случаем не удаляли залитые файлы с сервера напрямую (по FTP, или в ФМ каком)?


Эта ошибка появилась сразу после установки модуля. я зашел через FTP и убедился что файлы на сервер заливает, но в редакторе они не появляются. Потом после проб и ошибок я удалил файлы на фтп напрямую, которые позаливал через One Click Upload 2

Аватар пользователя bumble bumble 4 октября 2016 в 16:35
3

shumar wrote:

..я удалил файлы на фтп напрямую..

Это объясняет 2ю ошибку (из БД). Сейчас попробую растолковать:

Когда Вы заливаете файл, Drupal его переименовывает в соответствии с настройками. Когда загружаются файлы с одинаковым названием, Drupal добавляет приставки "_0", "_1", "_2"... Для того чтоб не было конфликта и не затирался предыдущий файл (если, например, файлы разные но с одним именем).

Т.к. это managed files, друпал записывает информацию о них в БД, где URI - это поле с адресом файла, содержащее его название. И это поле в БД должно быть уникальным (не должно повторятся).

Теперь что происходит:
Допустим, Вы закачали файл "img.jpg", посмотрели что загрузка не до конца отрабатывает и пока тестили - загружали его вновь и вновь... Таким образом, в БД записались файлы с URI "img.jpg", "img_0.jpg", "img_1.jpg", "img_2.jpg"...

Когда Вы их удалили с сервера, и попытались залить новый "img.jpg" - Drupal посмотрел в директорию, "не увидел" там такого файла, и дал команду на запись файла с URI "img.jpg", а такой уже есть в БД. Из-за этого база ругается PDOException'ами.

Итого: НЕЛЬЗЯ УДАЛЯТЬ ФАЙЛЫ С СЕРВЕРА НАПРЯМУЮ!

ЗЫ - Друпал беспокоится о своей чистоте, и подобные файлы (не используемые) удаляет сам, в большинстве случаев.

Аватар пользователя shumar shumar 4 октября 2016 в 16:23

Director-cemetery wrote:

Здесь - /admin/reports/status

что с "Файловая система" ?


Файловая система - Запись разрешена (публичный метод загрузки)

Аватар пользователя shumar shumar 4 октября 2016 в 16:31

исходя из картинки в шапке где-то режется формат... то есть спец символы экранируются... нужно смотреть какой формат отвечает за вывод

Посмею предположить что формат JSON, но и как его изменить или поправить я не нашел Sad
Пробовал понизить версию CKEditor до 4.0.3, результат тот же и та же ошибка

Аватар пользователя shumar shumar 4 октября 2016 в 16:33

Director-cemetery wrote:

Х*лиGUN написал:

нужно смотреть какой формат отвечает за вывод

Фулл, и пробовать галочки ставить-снимать.


Галочки в настройках редактора CKEditor или модуля One Click Upload?

Аватар пользователя Studio VIZA Studio VIZA 4 октября 2016 в 16:41
2

Давайте издалека. Поставьте свежий дру. Залейте СКедитор и библиотеку, и модуль One Click Upload

Если с первого раза всё будет идеально, значит ваш сервер не при чём, и нужно искать противоречия конфликты модулей, или неверную настройку чего либо, вариантов может быть много.

Аватар пользователя shumar shumar 4 октября 2016 в 16:41

bumble wrote:

Это объясняет 2ю ошибку (из БД). Сейчас попробую растолковать:

Спасибо, за это понял,буду иметь ввиду на будущее.
после удаления модуля и чистки кеша, потом установки модуля, вторая ошибка исчезла, но с первой продолжаю бороться.

Аватар пользователя shumar shumar 4 октября 2016 в 17:04

Director-cemetery wrote:

Давайте издалека. Поставьте свежий дру. Залейте СКедитор и библиотеку, и модуль One Click Upload
Если с первого раза всё будет идеально, значит ваш сервер не при чём, и нужно искать противоречия конфликты модулей, или неверную настройку чего либо, вариантов может быть много.


Спасибо. Наверное так и прийдется поступить, сейчас создам субдомен и положу туда пустой друпал.

Аватар пользователя shumar shumar 4 октября 2016 в 19:35
1

Сервер не при чем. На субдомене на пустой друпал 7.50 только с CKeditor и One Click Upload все работает замечательно.
Значит конфликт модулей или настроек.
пробовал выключать модули, никакого результата. В Console нашел что ругается на flow.js?v=2:1362, я так понимаю что 1362 - строка.
Строки 1360-1362:

 var uploadMethod = evalOpts(this.flowObj.opts.uploadMethod, this.fileObj, this); //1360
      var data = this.prepareXhrRequest(uploadMethod, false, this.flowObj.opts.method, this.bytes);//1361
      this.xhr.send(data); //1362

Поставил настройки конфигурации One Click Upload,CKeditor и текстовые форматы в положение как после установки, не помогло.

Аватар пользователя shumar shumar 6 октября 2016 в 21:45
1

Методом тыка (отключения группы модулей) выяснилось что у One Click Upload 2 конфликт с модулем Plus Gallery Formatter, в чем конфликт, я разбираться не стал, отключил этот модуль, можно его заменить аналогом, благо их много.
Всем большое спасибо за помощь в решении проблемы.