Скрепка для бумаги - Ошибка загрузки изображения: «не распознается командой« определить ».» - PullRequest
4 голосов
/ 19 ноября 2010

Я использую Рельсы 3 и скрепка .Моя логика позволяет пользователю загружать изображение.Это работает нормально, если пользователь не выбирает файл, который не является изображением.

Если пользователь выбирает, например, текстовый файл, проверка проходит успешно, но заканчивается такой ошибкой:

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.

По крайней мере, первая ошибка относится к типу файла.Но если пользователь загружает какой-то более конкретный файл, например .PXM, то Rails ведет себя странно и показывает это:

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.

Кто-нибудь знает, что здесь происходит?В моей модели есть следующий код:

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

... и этот инициализатор скрепки:

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

Кажется, что ImageMagik установлен и настроен правильно:

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

Спасибо!

Ответы [ 2 ]

3 голосов
/ 03 апреля 2011

Просто поместите код ниже на модель.Он не будет обрабатывать не-файл изображения.

before_post_process :image?
def image?
  !(data_content_type =~ /^image.*/).nil?
end
3 голосов
/ 24 ноября 2010

У меня была такая же проблема с Paperclip и Rails 2.3.8.В объявлении has_attached_file вашей модели удалите :styles для всех файлов, не относящихся к изображениям.

...