2009-11-17 6 views
7

を取り付けるときにトリガ:ペーパークリップのvalidates_attachment_content_type私はペーパークリップを使用して、私の音声モデルに次のvalidtionを追加するとき、私は試してみて、mp3をアップロードするとき、それがトリガされているワークアウトに苦労して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ファイルの数ですが、検証に失敗しているためアップロードできないようです。

答えて

4

ただ申し訳ありませんが、愚かであること。

私は単にCONTENT_TYPEが(「オーディオ/ MPG」)として保存されていたものをデシベルで表示、検証を削除し、検証で許可されCONTENT_TYPESのARAYにこれを追加しました。

ジョブ完了:-)

+0

こんにちは。私はaudio/wavタイプを試しています。しかし、それは動作しません。手伝っていただけませんか?ありがとう:) – Vishal

4

コンテンツタイプが間違っていますか?オーディオ/ MPEGを試してみてください。

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

+0

私は最初に許可したコンテンツタイプの配列がありました: ['application/mp3'、 'application/x-mp3'、 'audio/mpeg'、 'audio/mp3']、 しかし、データベースに保存されたばかりのコンテンツタイプは、私は奇妙だと思った「オーディオ/ MPG」でした。だから私のmp3のか、他の何か変なのに行くのは危険な何かがあるのでしょうか?これは奇妙に思える。 – Pete

1

はい、しかし、ユーザーは、他のブラウザ(またはブラウザの他のバージョン)を持っている場合はmp3のコンテンツタイプは、予期しない方法で解釈することができ、彼はmp3を保存する機能を持っていません。私は、次のMIMEタイプを使用(たぶん)完全なmp3-サポートについて

+0

私は同意し、私はすべての拠点をカバーするためにmp3のために、すべての有効なCONTENT_TYPESの配列を構築する場合になるだろうと思います。 – Pete

3

:だから

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' ] 
0

は、奇妙なことに、私はこの問題今夜を持っていた、そして上記の解決策のどれも私のために働いていませんでした。私はこのエラーを取得しました。

`[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' 

うまくいけば、これは誰かに役立ちます。

関連する問題