2009-11-01 32 views
0

我遇到了一個令人討厭的問題,使用Paperclip。 Paperclip在上傳jpg/gif文件時工作正常,但是它帶有「not recognized by identify」錯誤的.targa文件,只是爲了確認,它與jpg/gif/png文件一起工作100%,並且我安裝了imagemagick,此錯誤只發生的.tga文件使用Paperclip處理.tga(targa)文件

用於紙夾的一般過程是:

  • 用戶上傳文件
  • 將它視爲是包含該文件
  • 的內容創建的識別命令運行在Tempfile上獲取圖像的寬度/高度。

使用jpg/png/gif文件,識別可以在文件上運行,而不需要有效的擴展名(例如.jpg)就能識別文件類型。但是,在識別.tga文件時,它需要文件名中的「.tga」擴展名。

問題是這樣的:

當回形針創建臨時文件,它具有類似的名稱創建:stream.0.1。由於這個臨時文件缺少.tga擴展名,因此識別命令無法解析圖像的尺寸,從而導致「無法識別」

我不知道如何去解決這個問題,最好的主意我可以想出的是使用常規的File.new命令而不是Tempfile.new來創建臨時文件,並使用一個隨機名稱,但文件擴展名正確。這還需要在自定義代碼中修補以在處理完成後刪除文件完成,而不是依賴於Ruby的內置使用後刪除臨時文件的能力。

有誰會對我可以去修復這是最好的方法的一些想法?

回答