CNoise Опубликовано 20 мая, 2012 Поделиться Опубликовано 20 мая, 2012 Привет всем, сразу перейду к делу. Установил вчера, загруженный у вас, IP.Downloads 2.5 Rus, сразу же столкнулся с проблемой php при загрузке новых файлов. По совету, оставленному в одной из соседних тем, я сменил место хранения файлов с локального хранилища на базу данных, проблема решилась и все бы хорошо, вот только загрузить файлы весом более ~250 Кб. не могу, появляется ошибка со следующим описанием: "mySQL query error: INSERT INTO downloads_filestorage (`storage_file`,`storage_ss`,`storage_thumb`)". Расширение файла при этом роли не играет, на других форумах, расположенных на этом же сервере, все отлично. К сожалению, с администратором любого из них сейчас не связаться, поэтому и прошу помощи у вас, скриншот прилагаю. Любую дополнительную информацию с радостью готов предоставить. Заранее спасибо. Адрес страницы при этом выглядит, как __****.**/index.php? . Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
_Dark_ Опубликовано 20 мая, 2012 Поделиться Опубликовано 20 мая, 2012 Не надо хранить файлы в базе данных, она не для этого предназначена. Кто вам вообще это посоветовал? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CNoise Опубликовано 20 мая, 2012 Автор Поделиться Опубликовано 20 мая, 2012 Dark, знаю-знаю, сам был удивлен тому, что такой метод хранения и вовсе предлагается, но раз это было единственным решением проблемы, пришлось смириться. Вот, собственно, тема, где Respected и дал такой совет, . Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Respected Опубликовано 20 мая, 2012 Поделиться Опубликовано 20 мая, 2012 Нужен лог из папки cache, только он поможет узнать нам ошибку :crazy: Хранение файлов в базе тут не причём! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CNoise Опубликовано 20 мая, 2012 Автор Поделиться Опубликовано 20 мая, 2012 Respected, без проблем. Скажу сразу, ничего в этом не понимаю. Пытался уже разобраться. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
_Dark_ Опубликовано 20 мая, 2012 Поделиться Опубликовано 20 мая, 2012 Не надо хранить файлы в БД. Вы исправили следствие, но не исправили причину, поэтому и будут ошибки всякие. Надо решать ту проблему другим способом. Вот собственно, подтверждение из лога: Error: 1153 - Got a packet bigger than 'max_allowed_packet' bytes ну не рассчитана БД на то, чтобы выполняли такие запросы. Чисто для справки: в запросе, который выполняется в БД для вставки значения, значение имеет размер в 1.266.928 символов (зависит от размера файла). Если кто-то не понял, то 1 млн. символов в строке - это уже слишком для PHP / MySQL и прочего. Следующая ошибка: Error: 2006 - MySQL server has gone away [/code] Короче говоря, сервер MySQL просто закрывает соединение после такого запроса. Я настоятельно рекомендую вам не делать того, что вы делаете, вы просто напросто повалите сервер БД этим. Информация из документации MySQL: Эти ошибки будут также выдаваться при посылке серверу неверного или слишком длинного запроса. Если mysqld получает неправильный или слишком большой пакет, то сервер предполагает, что с клиентом что-то не так, и закрывает соединение. Если необходимо выполнять объемные запросы (например, при работе с большими столбцами типа BLOB), можно увеличить предельный размер запроса, запустив mysqld с опцией -O max_allowed_packet=# (по умолчанию 1 Mб). Дополнительная память выделяется по требованию, так что mysqld будет использовать больше памяти только в случае, когда выдан большой запрос или когда mysqld должен возвратить большую строку результата! Я разъясняю: вы пытаесь загрузить весь файл в БД, сервер понимает, что вы сошли с ума, и от греха подальше закрывает соединение с вами. CNoise, ztnzx и Respected 3 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Respected Опубликовано 20 мая, 2012 Поделиться Опубликовано 20 мая, 2012 C этим я согласен! Но.. Каков выход в данной ситуации? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Respected Опубликовано 20 мая, 2012 Поделиться Опубликовано 20 мая, 2012 Проблема с хранением файлов на сервере исчезнет после Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CNoise Опубликовано 21 мая, 2012 Автор Поделиться Опубликовано 21 мая, 2012 Всем спасибо за помощь, Respected, в особенности вам, очень приятно, как пользователю, такое внимание со стороны администрации, после обновления, проблема действительно решилась - файлы загружаются, но появилась новая, снова ошибка php, но на этот раз при попытке просмотреть любой из загруженных файлов - Fatal error: Call to undefined method classItemMarking::getSqlJoin() in /var/www/.../admin/applications_addon/ips/downloads/modules_public/display/file.php on line 175 . Непосредственно 175 строчка: $this->registry->classItemMarking->getSqlJoin( array( 'item_app_key_1' => 'f.file_cat' ), 'downloads' ), Заранее спасибо. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Respected Опубликовано 22 мая, 2012 Поделиться Опубликовано 22 мая, 2012 Нужно обновить кеш файлы стиля! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CNoise Опубликовано 23 мая, 2012 Автор Поделиться Опубликовано 23 мая, 2012 Respected, cовершенно забыл это упомянуть, в том-то и дело, что перекешировал уже несколько стилей, перекешировал конкретно "Загрузки", сразу, как строку увидел, об этом и подумал - не помогает, даже приложение переустанавливал. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CNoise Опубликовано 26 мая, 2012 Автор Поделиться Опубликовано 26 мая, 2012 По-прежнему актуально. Fatal error: Call to undefined method classItemMarking::getSqlJoin() in /var/www/.../admin/applications_addon/ips/downloads/modules_public/display/file.php on line 175 Кеш стилей обновлял, к слову, обновлял также и глобальный кеш, кеш отдельно IP.Bownloads, проверял ошибку сразу в нескольких стилях, ставил новые, даже переустановил приложение - не помогло. Возможно, есть еще какие-нибудь варианты? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Respected Опубликовано 26 мая, 2012 Поделиться Опубликовано 26 мая, 2012 Какое содержание у этой строчки? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CNoise Опубликовано 26 мая, 2012 Автор Поделиться Опубликовано 26 мая, 2012 Respected, Непосредственно 175 строчка: $this->registry->classItemMarking->getSqlJoin( array( 'item_app_key_1' => 'f.file_cat' ), 'downloads' ), Заранее спасибо. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Respected Опубликовано 26 мая, 2012 Поделиться Опубликовано 26 мая, 2012 Что, если обновить IP.Downloads до версии 2.5.1? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CNoise Опубликовано 26 мая, 2012 Автор Поделиться Опубликовано 26 мая, 2012 Respected, ...после обновления (Имеется ввиду 2.5.1), проблема действительно решилась - файлы загружаются, но появилась новая, снова ошибка php, но на этот раз при попытке просмотреть любой из загруженных файлов... Предвкушая последующие вопросы: Кеш стилей обновлял, к слову, обновлял также и глобальный кеш, кеш отдельно IP.Bownloads, проверял ошибку сразу в нескольких стилях, ставил новые, даже переустановил приложение - не помогло. Понимаю, что дело не в модификации, а во мне - в сервере или форуме, но вот понять в чем конкретно, увы, не могу. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Nicolayka Опубликовано 5 июля, 2012 Поделиться Опубликовано 5 июля, 2012 up. Та же проблема, при загрузке файла Fatal error: Call to undefined method classItemMarking::getSqlJoin() in /home/p113200/www/site.ru/форум/admin/applications_addon/ips/downloads/modules_public/display/file.php on line 175 При просмотре уже загруженного файла Fatal error: Call to undefined method classItemMarking::getSqlJoin() in /home/p113200/www/site.ru/форум/admin/applications_addon/ips/downloads/modules_public/display/file.php on line 175 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
wensont Опубликовано 5 июля, 2012 Поделиться Опубликовано 5 июля, 2012 Обновитесь до 2.5.1. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Nicolayka Опубликовано 5 июля, 2012 Поделиться Опубликовано 5 июля, 2012 (изменено) я на 2.5.1 и сижу. Пытаюсь сделать через FTP. Ошибка та же остаётся.. Изменено 5 июля, 2012 пользователем Nicolayka Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Nicolayka Опубликовано 5 июля, 2012 Поделиться Опубликовано 5 июля, 2012 (изменено) Делаю через локальное. Файл загрузился, но когда публикую, выскакивает.. Fatal error: Call to undefined method classItemMarking::getSqlJoin() in /home/p113200/www/сайт.рф/форум/admin/applications_addon/ips/downloads/modules_public/display/file.php on line 175 + зайти и скачать файл не могу... не может найти метод getSqlJoin у класса classItemMarking $this->registry->classItemMarking->getSqlJoin( array( 'item_app_key_1' => 'f.file_cat' ), 'downloads' ), говорят, что этой вот функции getSqlJoin не существует. Надо найти где объявляется класс classItemMarking и написать эту функцию, ну или найти как её использовать. Ибо функция имхо как бы намекает, что она должна быть откуда то из другого места. Изменено 5 июля, 2012 пользователем Nicolayka Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
CNoise Опубликовано 5 июля, 2012 Автор Поделиться Опубликовано 5 июля, 2012 Nicolayka, у меня данная проблема решилась полной переустановкой модуля. При этом важно делать перерасчет и перестраивать кеш после каждого выполненного вами действия - удалили Downloads - перестроили кеш, перезагрузили модуль на FTP - повторили операцию и так до окончания установки. Не могу сказать точно, помогло ли мне это, но сейчас проблема решена :good: Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Nicolayka Опубликовано 5 июля, 2012 Поделиться Опубликовано 5 июля, 2012 Nicolayka, у меня данная проблема решилась полной переустановкой модуля. Не помогло...поставил чистую 2.5.1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.