回形针不会显示/检测任何非图像的文件大小

时间:2011-08-27 02:47:37

标签: ruby-on-rails ruby paperclip

我正在开发一款允许用户上传视频,图片,音频剪辑和文档的应用。这些文件使用Paperclip gem上传并存储在s3上。

现在我在上传后对文件大小进行了一些处理,但是paperclip继续将文件保存到文件大小为'0'的数据库中,而不是.jpg, .gif, .png的任何文件。我已经尝试过检查自己的文件大小,上传的长度,以及其他一些头发的想法。

是否有monkeypatch,或者劫持回形针的请求以找出文件大小是多少?有没有人遇到过这个问题?

1 个答案:

答案 0 :(得分:1)

默认情况下,Paperclip用于处理图像。如果您需要能够处理其他文件类型,则必须考虑编写自己的处理器:https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/processor.rb。这将允许您在模型中声明时以任何方式处理文件:

has_attached_file :scan, :styles => { :text => { :quality => :better } },
                  :processors => [:ocr]

以下是README文档的重点:

  

注意:因为处理器通过转动原始附件进行操作   在样式中,如果没有样式,则不会运行处理器   定义

这意味着您需要指定某种styles,以便处理器或任何其他处理器运行。对于基本的自定义处理器,像:styles => { :default => true }这样简单的东西应该足以让你前进。