PaperclipError, «Произошла ошибка при обработке эскиза для ...» - PullRequest
0 голосов
/ 06 января 2011

Я на Windows 7 под управлением Ruby 1.8.7 с Rails 2.3.5.

Когда я загружаю изображение в веб-приложение (не написанное мной), я получаю эту ошибку:

[скрепка] идентифицировать -формат% wx% h "C: /Windows/Temp/stream20110104-3660-1j1ap8i-0.jpg [0]" 2> NUL

[скрепка] преобразовать"C: /Windows/Temp/stream20110104-3660-1j1ap8i-0.jpg [0]" -resize "100x140>" "C: / Windows / Temp / stream20110104-3660-1j1ap8i-020110104-3660-rmkivh-0" 2> NUL

[paperclip] Ошибка при обработке: произошла ошибка при обработке эскиза для ...

При попытке выполнить команду convert в cmd-shellоно работает.Я установил веб-приложение на две виртуальные машины и сервер (все Win 7) и везде получаю сообщение об ошибке.

На другом ПК (в том числе Win 7) с той же конфигурацией, хотя он работает нормально.

Знаете ли вы, что может вызвать эту проблему?

Это код в файле thumbnail.rb, который выдает эту ошибку:

    # Performs the conversion of the +file+ into a thumbnail. Returns the Tempfile
# that contains the new image.
def make
  src = @file
  dst = Tempfile.new([@basename, @format ? ".#{@format}" : ''])
  dst.binmode

  begin
    parameters = []
    parameters << source_file_options
    parameters << ":source"
    parameters << transformation_command
    parameters << convert_options
    parameters << ":dest"

    parameters = parameters.flatten.compact.join(" ").strip.squeeze(" ")

    success = Paperclip.run("convert", parameters, :source => "#{File.expand_path(src.path)}[0]", :dest => File.expand_path(dst.path))
  rescue PaperclipCommandLineError => e
    raise PaperclipError, "There was an error processing the thumbnail for #{@basename}" if @whiny
  end

  dst
end

Ответы [ 4 ]

4 голосов
/ 07 января 2011

В Windows есть собственный инструмент convert, поэтому ImageMagick нужно поместить в папку PATH выше, чем в System32.

Убедитесь, что приложение работает с тем же PATH, что и другая командная строка. Если вы используете его в качестве службы, есть шанс, что нет.

Также убедитесь, что генерация временного файла может быть обработана вами вручную. В выводе нет указания на детали сбоя, просто говорят, что сбой.

Попробуйте выполнить ту же команду, как только возникнет ошибка. Из вывода не ясно, что случилось. Также проверьте, является ли идентификатор , правильно идентифицирующий файл.

1 голос
/ 19 февраля 2012

Я знаю, что это старая тема, но у меня была такая же проблема.ImageMagicK был установлен и работает правильно, и перестановка переменных PATH не помогла.Оказывается, все, что мне нужно было сделать, это закрыть оболочку CMD, с которой я запускал 'rails server', и снова открыть ее.Я этого не делал, поскольку установка imagemagick и paperclip и новые переменные PATH недоступны, пока не будет повторно инициализирована оболочка CMD, из которой вы работаете.

1 голос
/ 06 января 2011

У вас установлен ImageMagick? Это в вашей системе PATH?

0 голосов
/ 19 февраля 2012

Вы можете определить путь к ImageMagick где-нибудь в / config / initializers

case Config::CONFIG['host_os']
    when /darwin/   # MacOS & macports
        Paperclip.options[:command_path] = "/usr/local/bin"
    when /mswin|mingw/  # Windows
        Paperclip.options[:command_path] = "Your path "
end
...