Paperclip会自动清理文件名吗?

时间:2011-09-07 02:59:47

标签: ruby-on-rails paperclip

我正在使用Thoughtbot的Paperclip gem来处理文件上传。

我发现当我上传文件名中包含空格的文件时,它会被替换为下划线的空格存储。

那很好。

我还尝试上传一个包含~等特殊字符的文件,然后将它们全部替换为下划线。

大。正是我想要的。

但为什么会这样呢?

我在模特中所做的一切都是......

has_attached_file(
    file_somefile,
    :path => ":rails_root/public/system/other/path/elements/:basename.:extension"
)

这是Paperclip的默认行为吗?

2 个答案:

答案 0 :(得分:13)

要添加更多信息,会在Paperclip::Attachment#cleanup_filename中发生,其中默认的restricted_characters / [& $ +,/:; =?@<> [] {} \ | \\ ^〜 %#] /被替换为下划线。

没有记录,但您可以指定paperclip的:restricted_characters选项来更改被替换的内容,例如。

class User < ActiveRecord::Base
  attr_accessible :avatar
  has_attached_file :avatar, :restricted_characters => /@/ # only replaces '@'
end

答案 1 :(得分:6)

好的,经过一番搜索,我发现this blog post在底部说,Paperclip实际上对文件名进行了一些最小的处理。