使用Paperclip处理.tga(targa)文件

时间:2009-11-01 22:23:13

标签: ruby-on-rails ruby paperclip

我遇到了Paperclip令人讨厌的问题。 Paperclip工作正常,可以上传jpg / gif文件,但它在.targa文件上窒息,错误“识别无法识别”。只是为了确认,它使用jpg / gif / png文件100%工作,我安装了imagemagick并正常工作,只有.tga文件才会出现此错误。

回形针的一般过程是:

  • 用户上传文件
  • 创建包含该文件内容的Tempfile
  • 在Tempfile上运行identify命令以获取图像的宽度/高度。

使用jpg / png / gif文件,识别可以在文件上运行而无需有效的扩展名(例如.jpg)来识别文件类型。但是,在识别.tga文件时,它需要文件名中的“.tga”扩展名。

问题在于:

当Paperclip创建临时文件时,它会使用类似于:stream.0.1的名称创建。由于此tempfile缺少.tga扩展名,因此identify命令无法解析图像的维度,从而导致“无法识别”。

我不确定如何修复此问题,我能想到的最好的想法是使用常规的File.new命令而不是Tempfile.new来创建具有随机名称但正确文件的临时文件延期。这还需要在自定义代码中修补以在处理完成后删除文件,而不是依赖Ruby的内置功能来在使用后删除临时文件。

有没有人对我可以解决的最佳方法有一些想法?

1 个答案:

答案 0 :(得分:0)

这是Paperclip中的一个错误,已修复。更多细节可以在这里找到:

http://groups.google.com/group/paperclip-plugin/browse_thread/thread/7fd7a8d7bab696a7