解决方案
其他提示
我做了一个活跃的模型 文件验证器 对载波,纸卷,drangonfly,Repile检查内容类型和文件大小验证的GEM(希望它将与其他上传解决方案一起使用)。它根据文件的内容检测内容类型,并具有介质类型SPOOF检测器。它在上传前后都起作用。
自从 1.0
版本CarrierWave具有内置文件尺寸验证。
安装最新 carrierwave
宝石
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
这是解决方案 我想到的 - 诀窍是,如果没有上传文件,我无法直接检查文件大小,因为这使得雾红宝石炸弹。我希望有一种更干净的方法来询问运营商是否上传文件。
不隶属于 StackOverflow