file_field_tag:仅上传小于特定大小的zip文件-RAILS

时间:2019-08-19 17:19:24

标签: ruby-on-rails ruby-on-rails-5

我只想上传小于100MB的zip文件。在参考了一些资源之后,我提到了size 1,但不确定是1MB,1GB还是究竟是多少?而且我仍然可以上传任意大小的zip文件。

= file_field_tag 'photos_zip_file', accept: '.zip', size: 1

我主要担心的是,是否有办法仅从尾端代码上传特定大小的文件?

2 个答案:

答案 0 :(得分:0)

在使用CarrierWave时,我建议添加验证服务器端。

因此,在模型中添加:

validate :size_validation

private

def size_validation
  errors[:photo_zip_file] << "should be less than 100MB" if photo_zip_file.size > 100.megabytes
end

希望有帮助。

答案 1 :(得分:0)

Carrierwave wiki

def size_range
  1..100.megabytes
end

或使用file validator

validates :photos_zip_file, file_size: { less_than: 100.megabytes }, file_content_type: { allow: 'application/zip' }