我正在使用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网站的大文件后卡住几分钟然后它通知我文件太大了。在我看来文件上传缓存然后验证运行。这是不可接受的。
还有其他方法可以运行验证吗?谢谢!
答案 0 :(得分:1)
最简单的方法是在文件传输发生之前编写一些JS来验证文件大小的客户端。
答案 1 :(得分:-1)
您可以使用paperclip gem,它将为尺寸,类型和格式提供可自定义的验证。