【问题标题】:How to validate file size of file before upload?上传前如何验证文件的文件大小?
【发布时间】:2014-07-31 21:11:40
【问题描述】:

我正在使用 Carrierwave 处理我的文件上传,现在我想添加验证功能,以便用户无法上传 1GB 或类似大小的文件。

现在我已经这样做了:

class Item < ActiveRecord::Base
    mount_uploader :image, ImageUploader
    validate :file_size

    def file_size
        errors[:image] << "too big" if self.image.parametres[:size] > 100000
    end
end

问题是我感觉这个验证在文件已经处理后有效。在我想上传 30MB 的大文件后,网站卡了几分钟,然后它告诉我文件太大。在我看来,文件已上传到缓存中,然后验证运行。这是不可接受的。

还有其他方法可以运行验证吗?谢谢!

【问题讨论】:

标签: ruby-on-rails validation ruby-on-rails-4 carrierwave filesize


【解决方案1】:

最简单的方法是在文件传输发生之前编写一些 JS 来验证文件大小客户端。

【讨论】:

    【解决方案2】:

    您可以使用回形针 gem,它将为大小、类型和格式提供可定制的验证。

    【讨论】:

    • Carrierwave 也是如此。无论如何,看起来 OP 正在寻找客户端验证。
    猜你喜欢
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2011-04-12
    相关资源
    最近更新 更多