Shrine是一个Ruby的文件上传工具库,用于处理文件上传和存储。它提供了一种简单而灵活的方式来管理文件上传的各个方面,包括验证文件扩展名。
在Shrine中,验证文件扩展名是通过使用插件来实现的。可以使用Shrine的validation_helpers插件来验证文件扩展名。该插件提供了一个名为extension_whitelist的验证器,可以指定允许的文件扩展名。
以下是一个示例代码,演示如何使用Shrine的validation_helpers插件来验证文件扩展名:
require "shrine"
require "shrine/storage/file_system"
# 配置Shrine使用文件系统存储
Shrine.storages[:file_system] = Shrine::Storage::FileSystem.new("public", prefix: "uploads")
# 创建Shrine的上传器
class MyUploader < Shrine
plugin :validation_helpers
Attacher.validate do
validate_extension_inclusion %w[jpg jpeg png gif]
end
end
# 实例化上传器
uploader = MyUploader.new(:file_system)
# 上传文件
file = File.open("path/to/file.jpg", "rb")
uploaded_file = uploader.upload(file)
# 检查文件扩展名是否符合要求
if uploaded_file.valid?
puts "文件上传成功!"
else
puts "文件扩展名不允许使用Facebook图像。"
end
在上面的示例中,我们创建了一个名为MyUploader的Shrine上传器,并使用validation_helpers插件来验证文件扩展名。在validate_extension_inclusion验证器中,我们指定了允许的文件扩展名为jpg、jpeg、png和gif。如果上传的文件扩展名不在这个白名单中,将会触发验证失败。
对于Shrine的更多详细信息和其他功能,请参考腾讯云的Shrine产品介绍页面:Shrine产品介绍
领取专属 10元无门槛券
手把手带您无忧上云