【问题标题】:Using Paperclip to Process .tga (targa) Files使用回形针处理 .tga (targa) 文件
【发布时间】:2010-12-12 03:06:11
【问题描述】:

我在使用 Paperclip 时遇到了一个烦人的问题。 Paperclip 在上传 jpg/gif 文件时工作正常,但在 .targa 文件上出现“无法识别”错误。只是为了确认一下,它可以 100% 使用 jpg/gif/png 文件,并且我安装了 imagemagick 并且可以正常工作,此错误仅发生在 .tga 文件中。

回形针的一般流程是:

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

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

问题是这样的:

当 Paperclip 创建临时文件时,它创建的名称类似于:stream.0.1。由于该临时文件缺少.tga 扩展名,因此identify 命令无法解析图像的尺寸,从而导致“notrecognized by identify”。

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

有人对我可以解决此问题的最佳方法有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby paperclip


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 2012-12-18
      相关资源
      最近更新 更多