Проверка размера вложения до прикрепления

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
moto
phpBB 1.2.0
Сообщения: 18
Стаж: 16 лет 1 месяц
Благодарил (а): 5 раз

Проверка размера вложения до прикрепления

Сообщение moto »

Всем привет. Столкнулся с такой ситуацией. У меня форум в локалке, разрешил крепить вложения до 250Мб, но иногда пользователи, все-равно, цепляют файл большим размером и получается следующее. Человек выбрал файл размером 300М, потом ждет-ждет пока он грузится и на 250 загруженных мегабайтах загрузка прерывается и появляется надпись "слишком большой размер вложения"...
Как можно организовать проверку размера вложения до его загрузки на сервер???
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Проверка размера вложения до прикрепления???

Сообщение MIT »

Никак.

Добавлено спустя 3 минуты 52 секунды:
Ну, точнее, можно через FSO, Java апплет или флеш, но стандартно — никак. Да и эти способы очень проблематичны...
Аватара пользователя
moto
phpBB 1.2.0
Сообщения: 18
Стаж: 16 лет 1 месяц
Благодарил (а): 5 раз

Re: Проверка размера вложения до прикрепления???

Сообщение moto »

А в каком файле происходит обработка прикрепления? Неужели там что-нибудь подобное

Код: Выделить всё

 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: Проверка размера вложения до прикрепления???

Сообщение MIT »

Файл сначала придёт на сервер, а только потом выполнится подобная проверка. Куда бы ты её не поставил.
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 21 год 4 месяца
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Re: Проверка размера вложения до прикрепления???

Сообщение Поручик »

Вывеси предупреждение об ограничении размеров, кто не прочитал, я не виноват.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
moto
phpBB 1.2.0
Сообщения: 18
Стаж: 16 лет 1 месяц
Благодарил (а): 5 раз

Re: Проверка размера вложения до прикрепления???

Сообщение moto »

Предупреждение вывесил, но пользователю все равно грустно :(
SvS
phpBB 1.4.3
Сообщения: 83
Стаж: 17 лет 5 месяцев
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Проверка размера вложения до прикрепления???

Сообщение SvS »

moto
Если есть доступ к конфигу Апача - установите параметр LimitRequestBody в необходимое значение (по дефолту там 0 - нет ограничения), происывается так (по дефолту этого параметра там нет вообще)

Код: Выделить всё

<VirtualHost *:80>
	DocumentRoot ....
	CustomLog ...
	ErrorLog ...
....
	<Directory "/home/...../http">
		LimitRequestBody 7864320
	</Directory>	
</VirtualHost>
Размер в байтах.

В .htaccess пропишите

Код: Выделить всё

ErrorDocument 413 /error413.html
Где /error413.html - страница с ругательством о превышении размера загружаемого файла (можно сделать в стиле форума)

Ограничения в php.ini обязательно должны быть выше, тогда работа будет корректной - при загрузке указанного кол-ва байт апач отрубит передачу и выдаст сообщение об ошибке, не напрягая форум.

Добавлено спустя 14 минут 17 секунд:
Согласно докам на Apache2 - этота дирректива должна работать и в .htaccess, но у меня почему-то там не получилось.

И в php.ini гляньте/увеличьте значения параметров upload_max_filesize и post_max_size.

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

Важно: это всё актуально на VPS/VDS, на шаред-хостинге даже не думайте об этом, там лимиты рядом не стояли

Вернуться в «Поддержка phpBB 3.0.х»