2010-02-04 6 views
8

Кто-нибудь знает, какое хорошее решение ограничивает размер загрузки файлов при запуске приложения Rails с помощью Passenger/mod_rails. Запрос должен быть немедленно отклонен, чтобы файл не передавался на сервер.Ограничение загрузки файлов в файлах Rails

Решения, которые я нашел до сих пор, описывают, как исправлять Mongrel, чтобы реализовать ограничение, но я должен использовать пассажира с этим приложением.

ответ

9

Вы можете ограничить размер загрузки через Apache с помощью директивы LimitRequestBody:

<Directory "/var/www"> 
    LimitRequestBody 1024 
</Directory> 

http://httpd.apache.org/docs/1.3/mod/core.html#limitrequestbody

+0

это является возможным решением. проблема заключается в том, что apache просто завершает соединение, и из-за этого невозможно показать страницу с ошибкой – Mato

+0

Да, это проверка на стороне сервера и используется для целей безопасности. Вероятно, вы должны использовать скрипт на стороне клиента, чтобы неназванные пользователи были уведомлены на месте. Если вы используете плагин как «dropzone», это так же просто, как установка «maxFilesize» – zehelvion

8

Вы можете используйте следующий javascript, чтобы уведомить пользователя о том, что выбранный файл превышает максимальный предел. Но все же важно иметь подтверждение на стороне сервера.

$('#id_of_input_file_field').change(function() { 
    if(this.files[0].size > MAX_LIMIT_FOR_FILE){ 
    $('#id_of_input_file_field').val(''); 
    alert('File exceeds maximum size limit ') 
} 
}); 

MAX_LIMIT_FOR_FILE в байтах, так что если вы хотите установить максимальный предел 1Мб, то значение должно быть MAX_LIMIT_FOR_FILE 1048576

 Смежные вопросы

  • Нет связанных вопросов^_^