2010-01-21 5 views
2

J'ai systématiquement une erreur quand je suis en train de télécharger un fichier qui n'est pas ["image/jpg", "image/jpeg", "image/gif", "image/png", "image/pjpeg", "image/x-png"]Paperclip :: NotIdentifiedByImageMagickError lorsque le fichier est pas un type de contenu de pièce jointe valide

Lorsque je tente de télécharger un fichier comme un « wav «J'ai ce message

* Photo /var/folders/nT/nTr21TWfFRO7r3cyG-h-7++++TM/-Tmp-/Clip audio 01,39154,0.wav is not recognized by the 'identify' command. * Photo /var/folders/nT/nTr21TWfFRO7r3cyG-h-7++++TM/-Tmp-/Clip audio 01,39154,0.wav is not recognized by the 'identify' command. * Photo content type Accepted files include: jpg, gif, png

il détecte que le fichier n'est pas une image et afficher mon message "Accepted files include: jpg, gif, png" mais j'ai ce message supplémentaire inclus avant le mien photo ne reconnaît pas la « commande d'identifier » .. Upload fonctionne très bien pour les photos

Mon code est:

Controller:

def upload 
    @picture= Picture.new(params[:picture]) 
    if [email protected]? 
     render :form 
    end 
end 

Voir formulaire:

<%= error_messages_for :picture, :header_message => nil, :message => nil %> 
<% form_for :picture, @picture, :name => "uploadPic", :url => { :action => 'upload_data'}, :html => {:name => 'uploadForm', :multipart => true } do |form| %> 
    <%= form.file_field :photo %> 
    <%= submit_tag 'Save'%> 
<% end %> 

modèle d'image:

class Picture < ActiveRecord::Base  
    require 'paperclip' 
    has_attached_file :photo, :styles => { :medium => "300x300>", :thumb => "100x100>" } 

    validates_attachment_size :photo, :less_than => 2.megabytes , :message => "must be less than 2 megabytes" 
    validates_attachment_content_type :photo, :content_type => ["image/jpg", "image/jpeg", "image/gif", "image/png", "image/pjpeg", "image/x-png"], :message => "Accepted files include: jpg, gif, png" 

end 

Répondre

7

résolu avec: pleurnichards => false
has_attached_file: photo,: pleurnichards => faux,: styles => {: medium => "300x300>",: pouce => "100x100>"}

+2

lors de l'utilisation de votre fix ne crée pas: moyen et: images de pouce, juste: original – Artur79

3

: whiny => false n'était pas suffisant pour résoudre le problème avec la dernière version de paperclip (2.3.6). J'ai fini par faire cela dans un initialiseur de rails:

module Paperclip 
    class Attachment 
    alias original_assign assign 
    def assign(*args) 
     original_assign(*args) 
    rescue NotIdentifiedByImageMagickError => e 
    end 
    end 
end 

Il semble bien avaler cette exception, car les erreurs de validation sont ajoutés en tout cas au moins si vous utilisez: pleurnichards => true.

Questions connexes