Всем привет. Столкнулся с такой ситуацией. У меня форум в локалке, разрешил крепить вложения до 250Мб, но иногда пользователи, все-равно, цепляют файл большим размером и получается следующее. Человек выбрал файл размером 300М, потом ждет-ждет пока он грузится и на 250 загруженных мегабайтах загрузка прерывается и появляется надпись "слишком большой размер вложения"...
Как можно организовать проверку размера вложения до его загрузки на сервер???
Проверка размера вложения до прикрепления
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
moto
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 1 месяц
- Благодарил (а): 5 раз
-
MIT
- Former team member
- Сообщения: 2500
- Стаж: 17 лет 6 месяцев
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 3 раза
- Поблагодарили: 351 раз
Re: Проверка размера вложения до прикрепления???
Никак.
Добавлено спустя 3 минуты 52 секунды:
Ну, точнее, можно через FSO, Java апплет или флеш, но стандартно — никак. Да и эти способы очень проблематичны...
Добавлено спустя 3 минуты 52 секунды:
Ну, точнее, можно через FSO, Java апплет или флеш, но стандартно — никак. Да и эти способы очень проблематичны...
-
moto
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 1 месяц
- Благодарил (а): 5 раз
Re: Проверка размера вложения до прикрепления???
А в каком файле происходит обработка прикрепления? Неужели там что-нибудь подобное
нельзя поставить?
Код: Выделить всё
if($_FILES["filename"]["size"] > 1024*3*1024){echo ("Размер файла превышает три мегабайта");exit;}-
MIT
- Former team member
- Сообщения: 2500
- Стаж: 17 лет 6 месяцев
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 3 раза
- Поблагодарили: 351 раз
Re: Проверка размера вложения до прикрепления???
Файл сначала придёт на сервер, а только потом выполнится подобная проверка. Куда бы ты её не поставил.
-
Поручик
- Former team member
- Сообщения: 3942
- Стаж: 21 год 4 месяца
- Откуда: Оренбург (Южный Урал)
- Благодарил (а): 24 раза
- Поблагодарили: 54 раза
Re: Проверка размера вложения до прикрепления???
Вывеси предупреждение об ограничении размеров, кто не прочитал, я не виноват.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
-
moto
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 1 месяц
- Благодарил (а): 5 раз
Re: Проверка размера вложения до прикрепления???
Предупреждение вывесил, но пользователю все равно грустно 
Re: Проверка размера вложения до прикрепления???
moto
Если есть доступ к конфигу Апача - установите параметр LimitRequestBody в необходимое значение (по дефолту там 0 - нет ограничения), происывается так (по дефолту этого параметра там нет вообще)
Размер в байтах.
В .htaccess пропишите
Где /error413.html - страница с ругательством о превышении размера загружаемого файла (можно сделать в стиле форума)
Ограничения в php.ini обязательно должны быть выше, тогда работа будет корректной - при загрузке указанного кол-ва байт апач отрубит передачу и выдаст сообщение об ошибке, не напрягая форум.
Добавлено спустя 14 минут 17 секунд:
Согласно докам на Apache2 - этота дирректива должна работать и в .htaccess, но у меня почему-то там не получилось.
И в php.ini гляньте/увеличьте значения параметров upload_max_filesize и post_max_size.
Естественно, что доступная для скрипта память сервера должна быть ограничена еще выше.
Важно: это всё актуально на VPS/VDS, на шаред-хостинге даже не думайте об этом, там лимиты рядом не стояли
Если есть доступ к конфигу Апача - установите параметр LimitRequestBody в необходимое значение (по дефолту там 0 - нет ограничения), происывается так (по дефолту этого параметра там нет вообще)
Код: Выделить всё
<VirtualHost *:80>
DocumentRoot ....
CustomLog ...
ErrorLog ...
....
<Directory "/home/...../http">
LimitRequestBody 7864320
</Directory>
</VirtualHost>
В .htaccess пропишите
Код: Выделить всё
ErrorDocument 413 /error413.htmlОграничения в php.ini обязательно должны быть выше, тогда работа будет корректной - при загрузке указанного кол-ва байт апач отрубит передачу и выдаст сообщение об ошибке, не напрягая форум.
Добавлено спустя 14 минут 17 секунд:
Согласно докам на Apache2 - этота дирректива должна работать и в .htaccess, но у меня почему-то там не получилось.
И в php.ini гляньте/увеличьте значения параметров upload_max_filesize и post_max_size.
Естественно, что доступная для скрипта память сервера должна быть ограничена еще выше.
Важно: это всё актуально на VPS/VDS, на шаред-хостинге даже не думайте об этом, там лимиты рядом не стояли

