Rails文件上传大小限制

Mat*_*ato 9 ruby-on-rails passenger mod-rails

有没有人知道在运行带有Passenger/mod_rails的Rails应用程序时限制文件上载大小的好方法.请求应立即被拒绝,以便文件不会传输到服务器.

到目前为止我找到的解决方案都描述了如何修补Mongrel以实现限制,但我必须使用乘客使用此应用程序.

Jac*_*Chu 20

或者,如果您将nginx与乘客一起使用,请添加服务器块:

server {
  client_max_body_size 100M;
}
Run Code Online (Sandbox Code Playgroud)

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


mea*_*gar 9

您可以使用LimitRequestBody指令通过Apache限制上传大小:

<Directory "/var/www">
    LimitRequestBody 1024
</Directory>
Run Code Online (Sandbox Code Playgroud)

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


小智 7

您可以使用以下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 ')
}
});
Run Code Online (Sandbox Code Playgroud)

MAX_LIMIT_FOR_FILE以字节为单位,因此如果要设置最大限制为1Mb,则MAX_LIMIT_FOR_FILE的值应为1048576