2011-01-06 16 views
0

Ich bin auf Windows 7, auf dem Ruby 1.8.7 mit Rails 2.3.5 ausgeführt wird.PaperclipError, "Beim Verarbeiten der Miniaturansicht ist ein Fehler aufgetreten ..."

Wenn ich ein Bild in einer Web-Anwendung laden (nicht von mir geschrieben) ich diesen Fehler:

[paperclip] identify -format %wx%h "C:/Windows/Temp/stream20110104-3660-1j1ap8i-0.jpg[0]" 2>NUL

[paperclip] convert "C:/Windows/Temp/stream20110104-3660-1j1ap8i-0.jpg[0]" -resize "100x140>" "C:/Windows/Temp/stream20110104-3660-1j1ap8i-020110104-3660-rmkivh-0" 2>NUL

[paperclip] An error was received while processing: There was an error processing the thumbnail for...

Wenn ich das convert-Kommando in der versuchen cmd-shell es funktioniert. Ich habe die Web-Anwendung auf zwei virtuelle Maschinen und einen Server (alle Win 7) installiert und bekomme den Fehler überall.

Auf einem anderen PC (Win 7 als auch) mit der gleichen Konfiguration, obwohl es gut funktioniert.

Wissen Sie, was zu diesem Problem führen kann?

Dies ist der Code in der thumbnail.rb, die diesen Fehler erzeugt:

# 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 

Antwort

1

Haben Sie ImageMagick installiert? Ist es in Ihrem System PATH?

+0

Ja und ja definieren. Ich habe den gleichen convert-Befehl wie im Log der Shell versucht, was gut funktioniert hat. – Hedge

4

Windows hat sein eigenes convert Werkzeug, daher muss ImageMagick höher in den Ordner PATH als System32 gesetzt werden.

Überprüfen Sie, ob die Anwendung mit derselben PATH wie die andere Befehlszeile ausgeführt wird. Wenn Sie es als Dienst ausführen, besteht eine Chance nicht.

Überprüfen Sie außerdem, dass die temporäre Datei generate von Ihnen manuell verarbeitet werden kann. In der Ausgabe gibt es keinen Hinweis auf die Details des Fehlers, es heißt nur, es ist fehlgeschlagen.

Versuchen Sie, denselben Befehl auszuführen, sobald der Fehler auftritt. Von der Ausgabe ist nicht klar, was passiert ist. Überprüfen Sie auch, ob die ID die Datei richtig identifiziert.

+0

Das Umstellen der Pfadeinträge löste das Problem. Danke vielmals. – Hedge

+1

Hmn, seltsam, dass Sie das gefunden hat geholfen und noch immer die Antwort auf andere Post vergeben :( –

1

Ich weiß, das ist ein alter Thread, aber ich hatte das gleiche Problem. ImageMagicK wurde installiert und läuft ordnungsgemäß, und die Umordnung der PATH-Variablen hat nicht geholfen. Es stellte sich heraus, dass ich nur die CMD-Shell schließen musste, von der ich "rails server" ausgeführt hatte, und sie erneut öffnen. Ich hatte dies nicht getan, seit ich imagemagick und paperclip installiert habe, und neue PATH-Variablen sind erst verfügbar, wenn die CMD-Shell, von der aus Sie arbeiten, neu initialisiert wird.

0

Sie können Pfad zu ImageMagick irgendwo in/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 
Verwandte Themen