Предельный размер загружаемого файла Rails - PullRequest
9 голосов
/ 04 февраля 2010

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

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

Ответы [ 3 ]

19 голосов
/ 04 февраля 2010

Или, если вы используете nginx с пассажиром, добавьте в блок сервера:

server {
  client_max_body_size 100M;
}

http://wiki.nginx.org/NginxHttpCoreModule#client_max_body_size

9 голосов
/ 04 февраля 2010

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

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

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

7 голосов
/ 27 июля 2012

Вы можете использовать следующий 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

...