我们如何限制具有有效文件类型但无效内容类型的文件上传 - Rails

时间:2013-09-07 14:24:43

标签: ruby-on-rails-3 file-upload mime-types content-type

在我的Rails网络应用程序中,我必须上传音频视频文件,并针对无效文件类型进行验证,我使用过{ {1}}我可以成功地做同样的事情。但是,如果我创建了一个文本文件并将扩展名从jquery-validation engine更改为.txt,例如.mp3test.txt,它将被jquery验证引擎视为有效,因为文件扩展名对音频有效。

我也要查看内容类型。当我在播放器中打开test.mp3时,它会向我显示错误消息test.mp3。我希望在界面中执行这种验证。在Rails中有可能吗?

我正在使用,

Stream contains no data

希望有人能帮助我。谢谢:) -

1 个答案:

答案 0 :(得分:2)

我建议您检查paperclip gem其Active Record的文件附件库。该库非常易于使用,并对每种内容类型进行验证。例如,如果您想通过下一次验证验证图像:

class User < ActiveRecord::Base
  attr_accessible :avatar
  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"

  validates_attachment :avatar, 
  :presence => true, :content_type => { :content_type => "image/jpg" },
  :size => { :in => 0..500.kilobytes }

end

希望它有所帮助。