Rails 文件上传大小限制

发布于 2024-08-20 10:10:27 字数 148 浏览 10 评论 0原文

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

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

Does anyone know a good solution to limit the file upload size when running a Rails application with Passenger/mod_rails. The request should immediately be declined, so that the file doesn't get transferred to the server.

The solutions I've found so far all describe how to patch Mongrel to implement a limitation, but I have to use passenger with this application.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

所有深爱都是秘密 2024-08-27 10:10:27

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

server {
  client_max_body_size 100M;
}

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

Or if you're using nginx with passenger, add in the server block:

server {
  client_max_body_size 100M;
}

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

作业与我同在 2024-08-27 10:10:27

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

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

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

You may cap the upload size via Apache using the LimitRequestBody directive:

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

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

谢绝鈎搭 2024-08-27 10:10:27

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

You can use following javascript to notify user that the selected file exceeds maximum limit. But still its essential to have server side validation.

$('#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 is in byte so if you want set max limit of 1Mb then value of MAX_LIMIT_FOR_FILE should be 1048576

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文