2010-04-15 40 views
5

我一直在尋找如何解決這個問題,但找不到任何實際和工作解決方案的認可。刪除由回形針提出unncessary錯誤 - 文件名不被「識別」命令

用戶模型:

validates_attachment_content_type:化身:CONTENT_TYPE => [ '圖像/ JPEG', '圖像/ PJPEG', '圖像/ X-PNG', '圖像/ PNG',「圖像/ GIF 「]

不必要的錯誤時顯示無效的文件類型上傳:

Avatar /tmp/sample,23283,0.txt is not recognized by the 'identify' command. 

服務器的詳細信息: Ubuntu和Debian

其識別 個結果 的/ usr/bin中/識別

指定命令路徑不解決這個問題:

Paperclip.options[:command_path] = "/usr/bin" 

任何想法?

我看着geometry.rb文件,並有似乎有點不妥。

def self.from_file file 
    file = file.path if file.respond_to? "path" 
    geometry = begin 
       Paperclip.run("identify", %Q[-format "%wx%h" "#{file}"[0]]) 
      rescue PaperclipCommandLineError 
       "" 
      end 
    parse(geometry) || 
    raise(NotIdentifiedByImageMagickError.new("#{file} is not recognized by the 'identify' command.")) 
end 

讓我知道是否有人解決了同樣的問題,以及如何。非常感謝。

回答

2

我有同樣的問題 - 回形針代碼是沒有過錯的。

在我的設置中,我在MacOSX上使用ImageMagick的二進制下載/usr/local/ImageMagick-6.6.1/bin 我在Apache/Passenger下運行Rails。我已將Paperclip安裝爲插件。

有得到這個工作需要3個步驟:

1:請確保您有ImageMagick的在UNIX命令行級別的工作。這包括將它添加到您的路徑和導出這些環境變量(指向您的ImageMagick安裝,當然)

MAGICK_HOME=/usr/local/ImageMagick-6.6.1 
DYLD_LIBRARY_PATH=/usr/local/ImageMagick-6.6.1/lib 

檢查在命令行級別標識與您的圖像作品。

2:告訴回形針在哪裏可以找到ImageMagick的可執行文件 在配置/環境。RB在文件

Paperclip.options[:command_path] = "/usr/local/ImageMagick-6.6.1/bin" 

的底部添加此在這一點上,重新啓動後乘客,你會看到「標識」是從內部回形針運行,但無法識別該文件......最後一步是...

3:確定需要這兩個導出的環境變量 - 並且Apache/Passenger(或其他Web服務器可能)在默認情況下不會傳遞這些變量! 在您的乘客虛擬主機文件中添加這些行:

SetEnv MAGICK_HOME /usr/local/ImageMagick-6.6.1 
    SetEnv DYLD_LIBRARY_PATH /usr/local/ImageMagick-6.6.1/lib 

重啓apache /客,它應該工作

祝您好運!

+1

是的,我想重新啓動Apache應該工作。不過在dreamhost上。我們使用共享和&VPS服務器。當然,VPS工作得很好。 – kgpdeveloper 2010-05-11 11:48:18

+0

這給我修好了,謝謝!更改相關的environment.rb文件後,請不要忘記重新啓動服務器 – gef 2010-08-23 13:23:04

1

你應該有ImageMagick的安裝它提供了識別命令,它的路徑必須是在用戶軌道的$PATH變量作爲運行。

它使用回形針的規模和圖像處理方案,但它不記錄爲依賴,因爲你「可以」用回形針沒有它,如果你接受的圖像,因爲他們來。

我希望它有幫助。

+0

我在路徑中添加了/ usr/bin。仍然沒有運氣。但我能夠通過不使用<%= error_messages_for:user%>來解決問題。我正在使用<%@ user.messages.each_full {| msg |做點什麼}%> – kgpdeveloper 2010-04-16 00:00:08

+0

你是否在類型驗證之前上傳了該圖片,可能是txt文件?它是否發生在新文件中? – Oinak 2010-04-19 08:42:52

相關問題