Posted 20 мая, 201212 yr comment_4640 Привет всем, сразу перейду к делу. Установил вчера, загруженный у вас, IP.Downloads 2.5 Rus, сразу же столкнулся с проблемой php при загрузке новых файлов. По совету, оставленному в одной из соседних тем, я сменил место хранения файлов с локального хранилища на базу данных, проблема решилась и все бы хорошо, вот только загрузить файлы весом более ~250 Кб. не могу, появляется ошибка со следующим описанием: "mySQL query error: INSERT INTO downloads_filestorage (`storage_file`,`storage_ss`,`storage_thumb`)". Расширение файла при этом роли не играет, на других форумах, расположенных на этом же сервере, все отлично. К сожалению, с администратором любого из них сейчас не связаться, поэтому и прошу помощи у вас, скриншот прилагаю. Любую дополнительную информацию с радостью готов предоставить. Заранее спасибо. Адрес страницы при этом выглядит, как __****.**/index.php? .
20 мая, 201212 yr comment_4641 Не надо хранить файлы в базе данных, она не для этого предназначена. Кто вам вообще это посоветовал?
20 мая, 201212 yr Author comment_4650 Dark, знаю-знаю, сам был удивлен тому, что такой метод хранения и вовсе предлагается, но раз это было единственным решением проблемы, пришлось смириться. Вот, собственно, тема, где Respected и дал такой совет, .
20 мая, 201212 yr comment_4651 Нужен лог из папки cache, только он поможет узнать нам ошибку :crazy: Хранение файлов в базе тут не причём!
20 мая, 201212 yr Author comment_4652 Respected, без проблем. Скажу сразу, ничего в этом не понимаю. Пытался уже разобраться.
20 мая, 201212 yr comment_4655 Не надо хранить файлы в БД. Вы исправили следствие, но не исправили причину, поэтому и будут ошибки всякие. Надо решать ту проблему другим способом. Вот собственно, подтверждение из лога: 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 должен возвратить большую строку результата! Я разъясняю: вы пытаесь загрузить весь файл в БД, сервер понимает, что вы сошли с ума, и от греха подальше закрывает соединение с вами.
21 мая, 201212 yr Author comment_4676 Всем спасибо за помощь, 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' ), Заранее спасибо.
23 мая, 201212 yr Author comment_4712 Respected, cовершенно забыл это упомянуть, в том-то и дело, что перекешировал уже несколько стилей, перекешировал конкретно "Загрузки", сразу, как строку увидел, об этом и подумал - не помогает, даже приложение переустанавливал.
26 мая, 201212 yr Author comment_4879 По-прежнему актуально. 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, проверял ошибку сразу в нескольких стилях, ставил новые, даже переустановил приложение - не помогло. Возможно, есть еще какие-нибудь варианты?
26 мая, 201212 yr Author comment_4907 Respected, Непосредственно 175 строчка: $this->registry->classItemMarking->getSqlJoin( array( 'item_app_key_1' => 'f.file_cat' ), 'downloads' ), Заранее спасибо.
26 мая, 201212 yr Author comment_4911 Respected, ...после обновления (Имеется ввиду 2.5.1), проблема действительно решилась - файлы загружаются, но появилась новая, снова ошибка php, но на этот раз при попытке просмотреть любой из загруженных файлов... Предвкушая последующие вопросы: Кеш стилей обновлял, к слову, обновлял также и глобальный кеш, кеш отдельно IP.Bownloads, проверял ошибку сразу в нескольких стилях, ставил новые, даже переустановил приложение - не помогло. Понимаю, что дело не в модификации, а во мне - в сервере или форуме, но вот понять в чем конкретно, увы, не могу.
5 июля, 201212 yr comment_7092 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
5 июля, 201212 yr comment_7095 я на 2.5.1 и сижу. Пытаюсь сделать через FTP. Ошибка та же остаётся.. Edited 5 июля, 201212 yr by Nicolayka
5 июля, 201212 yr comment_7096 Делаю через локальное. Файл загрузился, но когда публикую, выскакивает.. 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 и написать эту функцию, ну или найти как её использовать. Ибо функция имхо как бы намекает, что она должна быть откуда то из другого места. Edited 5 июля, 201212 yr by Nicolayka
5 июля, 201212 yr Author comment_7100 Nicolayka, у меня данная проблема решилась полной переустановкой модуля. При этом важно делать перерасчет и перестраивать кеш после каждого выполненного вами действия - удалили Downloads - перестроили кеш, перезагрузили модуль на FTP - повторили операцию и так до окончания установки. Не могу сказать точно, помогло ли мне это, но сейчас проблема решена :good:
5 июля, 201212 yr comment_7106 Nicolayka, у меня данная проблема решилась полной переустановкой модуля. Не помогло...поставил чистую 2.5.1
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.