在我们最新的应用程序中,我们需要处理一些上传,我之前使用过paperclip,一切正常!但是我们正在尝试carrierwave,看起来很有希望,但是,我找不到如何验证附件的大小,好像documentation没有'我有关于它的任何信息,我们是否应该通过自定义验证器手动将其添加到模型中?
提前致谢!
答案 0 :(得分:20)
github上有一个Wiki条目:https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Validate-attachment-file-size
答案 1 :(得分:5)
我制作了一个活动模型File Validators gem,用于检查Carrierwave,PaperClip,Drangonfly,Refile的内容类型和文件大小验证(希望它可以与其他上传解决方案一起使用)。它根据文件的内容检测内容类型,并且具有媒体类型欺骗检测器。它在上传之前和之后都有效。
答案 2 :(得分:4)
由于1.0
版本CarrierWave具有内置文件大小验证。
安装最新的carrierwave
gem
gem 'carrierwave', '~> 1.0'
添加方法size_range
以提供最小尺寸和最大尺寸
class ImageUploader < CarrierWave::Uploader::Base
def size_range
0..2.megabytes
end
在模型中添加validates_integrity_of
以有效图像的文件大小(和内容类型)。
class Image < ApplicationRecord
mount_uploader :image, ImageUploader
validates_integrity_of :image
答案 3 :(得分:-1)
Here is the solution - 诀窍在于我无法直接检查文件大小,因为如果文件尚未上传,则会生成Fog RubyGem炸弹。我希望有一种更清晰的方式来询问CarrierWave是否上传了文件。