Скрепка validates_attachment_content_type для mp3 срабатывает при подключении mp3 - PullRequest
8 голосов
/ 17 ноября 2009

С трудом тренируясь, когда я добавляю следующую проверку в модель Voice с помощью скрепки, она запускается при попытке загрузить mp3:

class Voice < ActiveRecord::Base
  has_attached_file :clip

  validates_attachment_presence :clip
  validates_attachment_content_type :clip, :content_type => [ 'application/mp3', 'application/x-mp3', 'audio/mpeg', 'audio/mp3' ],
                                    :message => 'file must be of filetype .mp3'

  validates_attachment_size :clip, :less_than => 10.megabytes                                    

  validates_presence_of :title      
end

Я пробовал несколько разных mp3-файлов, но, похоже, ни один из них не загружается из-за сбоя проверки.

Ответы [ 5 ]

5 голосов
/ 17 ноября 2009

Неправильный тип контента? Попробуйте аудио / MPEG.

http://www.w3schools.com/media/media_mimeref.asp

4 голосов
/ 17 ноября 2009

Просто глупо, прости.

Я просто удалил валидацию, посмотрел в БД, как был сохранен content_type ('audio / mpg'), и добавил его в массив разрешенных типов content_typ в валидации.

Работа сделана: -)

3 голосов
/ 25 октября 2011

Для (надеюсь) полной поддержки mp3 я использовал следующие mimetypes:

validates_attachment_content_type :audio,
  :content_type => [ 'audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'audio/x-mp3', 'audio/mpeg3', 'audio/x-mpeg3', 'audio/mpg', 'audio/x-mpg', 'audio/x-mpegaudio' ]
1 голос
/ 07 мая 2010

Да, но если у пользователя есть другой браузер (или другая версия браузера), тип содержимого mp3 может быть интерпретирован неожиданным образом, и он не сможет сохранить mp3.

0 голосов
/ 28 апреля 2016

Итак, как ни странно, сегодня вечером у меня возникла эта проблема, и ни одно из вышеперечисленных решений не помогло мне. Я получаю эту ошибку:

`[paperclip] Content Type Spoof: Filename blah_blah_blah.mp3 (audio/mp3 from Headers, ["audio/mpeg"] from Extension), content type discovered from file command: application/octet-stream. See documentation to allow this combination.`

Я решил, используя это как мой валидатор:

validates_attachment_content_type :recording,
content_type: [
  'application/mp3',
  'application/x-mp3',
  'audio/mpeg',
  ['audio/mpeg'], # note the array around the type
  'audio/mp3'
],
message: 'File must be of filetype .mp3'

Надеюсь, это кому-нибудь поможет.

...