【问题标题】:Does Paperclip automatically clean up filenames?Paperclip 会自动清理文件名吗?
【发布时间】:2011-09-07 02:59:46
【问题描述】:

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

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

这很好。

我还尝试上传带有~ 等特殊字符的文件,但它们都被下划线替换了。

太好了。正是我想要的。

但是为什么会这样呢?

我在我的模型中所做的只是......

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

这是回形针的默认行为吗?

【问题讨论】:

  • 什么操作系统?在 OS X 上,我得到带有原始空格和波浪线的文件名。
  • 我使用的是 OS X,Paperclip 2.3.1.1
  • 嗯。我没有在我测试过的应用程序中明确设置路径,除此之外,我也没有做任何事情。目前无法检查我的版本,但我没有在 Gemfile 中指定版本,所以可能是 2.4.1ish。

标签: ruby-on-rails paperclip


【解决方案1】:

添加更多信息,这发生在Paperclip::Attachment#cleanup_filename 中,其中默认的受限字符 /[&$+,/:;=?@[]{}\|\\^~%# ]/ 是替换为下划线。

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

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

【讨论】:

【解决方案2】:

好的,经过一番搜索,我找到了this blog post,它在底部写着,Paperclip 实际上对文件名做了一些最小的处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 2010-09-23
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多