【问题标题】:Rails file upload size limitRails 文件上传大小限制
【发布时间】:2011-01-13 02:22:47
【问题描述】:

有没有人知道在使用Passenger/mod_rails 运行Rails 应用程序时限制文件上传大小的好方法。应立即拒绝该请求,以免文件传输到服务器。

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

【问题讨论】:

    标签: ruby-on-rails passenger mod-rails


    【解决方案1】:

    或者,如果您使用带有乘客的 nginx,请添加服务器块:

    server {
      client_max_body_size 100M;
    }
    

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 这是一个可能的解决方案。这里的问题是 apache 刚刚退出连接,因此无法显示错误页面
      • 是的,这是服务器端验证,用于安全目的。您可能应该在客户端使用脚本,以便当场通知非恶意用户。如果您使用像dropzone 这样的插件,则只需设置maxFilesize
      【解决方案3】:

      您可以使用以下 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-29
        • 2017-03-09
        • 1970-01-01
        • 2022-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多