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



我只想上传大小小于100MB的zip文件。根据一些资源,我已经提到了size 1但我不确定它是 1MB、1GB 还是它到底是什么?而且我仍然可以上传任何大小的zip文件。

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

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

当您使用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

希望对您有所帮助。

查看 Carrierwave wiki:

def size_range
1..100.megabytes
end

或使用文件验证器

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

最新更新