Paperclip音频文件上传

时间:2014-04-19 12:41:01

标签: ruby-on-rails

我正在使用paperclip gem上传文件。我想上传不同类型的文件,如pdf,doc,video和audio。我在模型中验证了文件类型。对于doc,pdf和Video它正在工作,但它不是为了音频文件。请帮忙。 我的模特

class Xyz < ActiveRecord::Base
  attr_accessible :email, :name, :avatar, :CategoryID
  has_attached_file :avatar
  validates_attachment_content_type :avatar, :content_type => ['video/mp4','video/avi','Audio/mp3','application/pdf',"application/pdf","application/vnd.ms-excel",     
             "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
             "application/msword", 
             "application/vnd.openxmlformats-officedocument.wordprocessingml.document", 
             "text/plain"]
  #validates_attachment_content_type :avatar, :content_type => ['audio/mp3']
end

这是我得到的错误......

1 error prohibited this xyz from being saved:

    Avatar content type is invalid

1 个答案:

答案 0 :(得分:6)

这适用于任何类型的文件

validates_attachment_content_type :avatar, :content_type => /.*/

您还可以使用命令

发现文件的确切内容类型
file -i path/to/file # or 
file --mime-type path/to/file

我已经在MP3文件中运行并返回

audio/mpeg

因此,如果您只想验证某些内容类型,可以将'audio / mpeg'添加到列表中

validates_attachment_content_type :avatar, :content_type => [ ..., 'audio/mpeg', ...]