10

有谁知道在使用 Passenger/mod_rails 运行 Rails 应用程序时限制文件上传大小的好解决方案。该请求应立即被拒绝,这样文件就不会被传输到服务器。

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

4

3 回答 3

21

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

server {
  client_max_body_size 100M;
}

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

于 2010-02-04T15:24:56.540 回答
10

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

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

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

于 2010-02-04T14:12:45.857 回答
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 ')
}
});

MAX_LIMIT_FOR_FILE 以字节为单位,所以如果你想设置 1Mb 的最大限制,那么 MAX_LIMIT_FOR_FILE 的值应该是 1048576

于 2012-07-27T14:06:40.263 回答