Universal 0 Опубликовано: 1 августа 2010 Рассказать Опубликовано: 1 августа 2010 Проверка размера аватара производится после его полной загрузки на сервер. А что, если аватар весит 1гб? Сервер попросту виснет. Люди намеренно это делают, нашли вот такой глюк с загрузкой. Как исправить? Цитата Ссылка на сообщение Поделиться на других сайтах
DeeMon 73 Опубликовано: 1 августа 2010 Рассказать Опубликовано: 1 августа 2010 На хостинге нет ограничения размера загружаемого файла? Просто вещь а не хостинг Цитата Ссылка на сообщение Поделиться на других сайтах
Universal 0 Опубликовано: 1 августа 2010 Рассказать Опубликовано: 1 августа 2010 Автор Ставлю в php.ini вот это: upload_max_filesize = 5M Не помогает. Цитата Ссылка на сообщение Поделиться на других сайтах
Dj Dance 185 Опубликовано: 1 августа 2010 Рассказать Опубликовано: 1 августа 2010 Ставлю в php.ini вот это: upload_max_filesize = 5M Не помогает. А еще поставьте post_max_size = 5M Цитата Ссылка на сообщение Поделиться на других сайтах
Universal 0 Опубликовано: 1 августа 2010 Рассказать Опубликовано: 1 августа 2010 Автор Так же не помогло. Всё-равно файл полностью грузится на сервер, а потом уже проверяется скриптом. Цитата Ссылка на сообщение Поделиться на других сайтах
Dj Dance 185 Опубликовано: 1 августа 2010 Рассказать Опубликовано: 1 августа 2010 Вы после внесения изменений перезапускали сервер? Цитата Ссылка на сообщение Поделиться на других сайтах
hotdj 33 Опубликовано: 1 августа 2010 Рассказать Опубликовано: 1 августа 2010 видимо нет. =) Цитата Ссылка на сообщение Поделиться на других сайтах
Universal 0 Опубликовано: 1 августа 2010 Рассказать Опубликовано: 1 августа 2010 Автор Ёлы-палы, ну конечно перезагружал)) Цитата Ссылка на сообщение Поделиться на других сайтах
hotdj 33 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 ну тогда мы незнаем. щас тебе как всегда напишут. это не баг. ждите в новой версии такой возможности не будет. =)) Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 066 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 Проверка размера аватара производится после его полной загрузки на сервер. А что, если аватар весит 1гб? Сервер попросту виснет. Для справки: файлы на сервер загружают не PHP скрипты, а браузер с использованием серверного ПО (Apache, PHP модуль апача). Скрипты запускаются уже после окончания загрузки, когда данные уже получены сервером, и проверить до, они не могут даже в теории. Вам нужно искать проблемы в серверном ПО, скорее всего просто зависает Апач, при передаче данных, соответственно виснет сервер. Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 (изменено) Проверка размера аватара производится после его полной загрузки на сервер. А что, если аватар весит 1гб? Сервер попросту виснет. Люди намеренно это делают, нашли вот такой глюк с загрузкой. Как исправить? Статистика по файлам доступна только с сервера, где они расположены, т.е. узнать, например, размер файла можно только после его загрузки. Но, может, можно как-то разбить поток данных во время загрузки? - не знаю, но вроде бы так сделать можно, ведь даунлоадеры из сети как-то определяют все данные файла и загружают на компьютер. 1. Проверить предварительно файлы в JS перед загрузкой на правильность имени и размера. 2. Разрешить/запретить определенные mime-типы файлов: gif, png и т.д. Например, для аваторов можно разрешить только jpg, gif, png. Не знаю, как в ДЛЕ аватары подгружаются, но фильтр ставится так: if($_FILES['FILE']['type'] == 'image/jpeg') { ... } else echo 'Файл не является картинкой формата JPG'; ... if ($_FILES['FILE']['size']!=0 && $_FILES['FILE']['size']<=102400) { ... } else echo 'Файл имеет недопустимый размер'; Как вариант - сделайте загрузку аваторов с другого сервиса, например, Граватара (gravatar.com). 3. Выставить ограничение в php.ini (php.ini должен лежать там же, где и исполнительный скрипт) на загружаемый файл до сотни мегабайт или меньше, чтоб нельзя было гигабайтный файл заливать. 4. Проверить после загрузки: размер файла, количество пикселов, тип и имя. Если разрешение в пикселях больше допустимого или размер в байтах выше нормы, то конвертнуть файл автоматом в другой формат и другое разрешение - поможет в 90% случаев. Обычно это есть в любой галереи. Видимо, в ДЛЕ пока нет всех этих проверок. Изменено 2 августа 2010 пользователем zgr Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 066 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 Вы абсолютно и в корне неправы. Во первых никакими JS скриптами размер файла вы не проверите и не узнаете, во вторых в DLE все проверки в скриптах есть, только толку от них нет, тк скрипты php запускаются только после полной загрузки файлов, а сервер у автора топика зависает во время загрузки файлов. Это большая и принципиальная разница, никакими скриптами и проверками это не исправить, нужно смотреть конфигурацию сервера и ПО.Здесь не срабатывают ограничения установленные в php.ini а не ограничения и проверки в скриптах. Цитата Ссылка на сообщение Поделиться на других сайтах
Universal 0 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 Автор Я поправлюсь. Сервер не зависает, а просто начинает "подтупливать", потому-что в данный момент на него грузят этот огромный файл. После загрузки сервер начинает работать на все 100%. Т.е. пока грузится файл - сервер кидает на него все свои силы. Загрузился файл - продолжает работать в норме. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 066 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 Процесс загрузки это не ресурсоемкий процесс, на него сервер не может кидать все свои силы при загрузке одного файла, т.к это ему попросту не нужно. Тут нужно смотреть сам сервер, что и как там стоит, может антивирус сканирует поток, и грузит систему, может еще что, так просто не скажешь, для консультации по этому вопросу вам лучше обратится к системному администратору вашего сервера. Я могу ответить вам только по вопросам относящимся к скриптам PHP, а это только то что они физически не умеют определять размеры файлов пока файл не загрузился и скрипт после этого не запустился. Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 На счет js подглядел здесь: http://www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html Правда, у меня не заработал. Сам в JS не очень силен, но, как-то видел, писали, что помимо АктивХ в ИЕ, в ФФ какие-то фичи есть, но не в курсе, не интересовался. И вот, кстати, интересно, как же это (определение размера) делается на сайте: http://ajaxbrowser.com/ ? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 066 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 Если вы зайдете в dle и при загрузке файлов выберете массовую загрузку, то получите ответ на свой вопрос "как". Это не JS и не PHP это флеш плагин браузера и только локально в браузере, а не серверно и не решает проблемы автора топика Цитата Ссылка на сообщение Поделиться на других сайтах
Universal 0 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 (изменено) Автор celsoft, я как раз и являюсь администратором данного сервера. Антивирусов никаких не стоит. Apache/2.2.14 (Win32) + MySQL 5.0.51a + PHP 5.2.9 ставил вручную сам, никаких сборок. Насчет php.ini: Loaded Configuration File: C:\Server\php\php.ini Именно этот файл я и меняю. Изменено 2 августа 2010 пользователем Universal Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 А канал то на сервере какой?Может загрузкой просто канал убивается? Цитата Ссылка на сообщение Поделиться на других сайтах
Universal 0 Опубликовано: 2 августа 2010 Рассказать Опубликовано: 2 августа 2010 Автор Канал гигабитный. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 066 Опубликовано: 3 августа 2010 Рассказать Опубликовано: 3 августа 2010 celsoft, я как раз и являюсь администратором данного сервера. это как раз и не очень хорошо, иначе бы вы не спрашивали и знали почему проблема. Вам нужно найти профессионального специалиста, который корректно настроит сервер. Я например не системный администратор, поэтому сам ничего в этой области не делаю. Есть различные специфические форумы системных администраторов, попробуйте попросить там о помощи. Работа сайта, это не только работа скрипта DLE, это еще и правильное и грамотное сконфигурированное ПО сервера. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 3 августа 2010 Рассказать Опубликовано: 3 августа 2010 А что, если аватар весит 1гб? Сервер попросту виснет. Да тут всё просто. TC на своём домашнем компьютере поднял Apache, PHP, MySQL и пытается грузить гиговую картинку. Считай копирование у себя же с харда на хард через протокол http. Я бы от такой наглости не просто подвисал, а в BSOD выпадал. ))))) 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Universal 0 Опубликовано: 3 августа 2010 Рассказать Опубликовано: 3 августа 2010 Автор 1. Что такое ТС? 2. Сервер у меня выделенный под вебу, там Windows Server 2003 стоит. 3. Обращусь тогда с вопросом на другой форум. Спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 622 Опубликовано: 3 августа 2010 Рассказать Опубликовано: 3 августа 2010 ТС - от англ. topic starter - тот, кто создал тему (топик) на форуме. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.