有谁知道在使用 Passenger/mod_rails 运行 Rails 应用程序时限制文件上传大小的好解决方案。该请求应立即被拒绝,这样文件就不会被传输到服务器。
到目前为止,我找到的解决方案都描述了如何修补 Mongrel 以实现限制,但我必须在此应用程序中使用乘客。
有谁知道在使用 Passenger/mod_rails 运行 Rails 应用程序时限制文件上传大小的好解决方案。该请求应立即被拒绝,这样文件就不会被传输到服务器。
到目前为止,我找到的解决方案都描述了如何修补 Mongrel 以实现限制,但我必须在此应用程序中使用乘客。
或者,如果您将 nginx 与乘客一起使用,请添加服务器块:
server {
client_max_body_size 100M;
}
http://wiki.nginx.org/NginxHttpCoreModule#client_max_body_size
您可以使用 LimitRequestBody 指令通过 Apache 限制上传大小:
<Directory "/var/www">
LimitRequestBody 1024
</Directory>
http://httpd.apache.org/docs/1.3/mod/core.html#limitrequestbody
您可以使用以下 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