2010-11-19 16 views
4

J'utilise Rails 3 et trombone. Ma logique permet à l'utilisateur de télécharger une image. Cela fonctionne correctement, sauf si l'utilisateur sélectionne un fichier qui n'est pas une image.Paperclip - Erreur de téléchargement d'image: "non reconnu par la commande" identifier "."

Si l'utilisateur choisit un fichier texte, par exemple, des passes de validation, mais se retrouve avec cette erreur:

5 errors prohibited the profile update: 

Profile pic content type is not one of image/jpeg, image/png, image/gif 
Profile pic /var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20101118-229-17xuiu4-0.js is not recognized by the 'identify' command. 
Profile pic /var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20101118-229-17xuiu4-0.js is not recognized by the 'identify' command. 
Profile pic /var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20101118-229-17xuiu4-0.js is not recognized by the 'identify' command. 
Profile pic /var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20101118-229-17xuiu4-0.js is not recognized by the 'identify' command. 

Au moins la première erreur fait référence au type de fichier. Mais si l'utilisateur télécharge certains fichiers plus spécifiques, comme un .PXM, alors Rails se comporte étrange et montre ceci:

4 errors prohibited the profile update: 

Profile pic /var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20101118-229-1scwkg7-0.pxm is not recognized by the 'identify' command. 
Profile pic /var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20101118-229-1scwkg7-0.pxm is not recognized by the 'identify' command. 
Profile pic /var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20101118-229-1scwkg7-0.pxm is not recognized by the 'identify' command. 
Profile pic /var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20101118-229-1scwkg7-0.pxm is not recognized by the 'identify' command. 

Est-ce que quelqu'un sait ce qui se passe ici? J'ai le code suivant dans mon modèle:

validates_attachment_content_type :profile_pic, :content_type=>['image/jpeg', 'image/png', 'image/gif'] 

... et ce paperclip initialiseur:

Paperclip.options[:command_path] = "/opt/local/bin/" 

ImageMagik semble être installé et configuré correctement:

$ which Magick-config 
/opt/local/bin/Magick-config 

Merci!

+1

Que signifient 'which identify',' locate identify' ou 'find/-name identify' retour? – Eric

+0

$ qui identifient /opt/local/bin/identifier – AnApprentice

+0

J'ai corrigé ceci avec de la cocaïne 0.3.2. S'il vous plaît voir http://stackoverflow.com/questions/12753157/paperclipnotidentifiedbyimagemagickerror-in-spreeadminimagescontrollercre/12771707#12771707 –

Répondre

3

J'ai eu le même problème avec Paperclip et Rails 2.3.8. Dans la déclaration has_attached_file de votre modèle, supprimez le :styles pour tous les fichiers non-image.

3

Il suffit de mettre le code ci-dessous sur le modèle. Il ne traitera pas le fichier non-image.

before_post_process :image? 
def image? 
    !(data_content_type =~ /^image.*/).nil? 
end