【问题标题】:Rails: how to get a file extension/postfix based on the mime typeRails:如何根据 mime 类型获取文件扩展名/后缀
【发布时间】:2013-05-24 02:14:52
【问题描述】:

我的问题是,Ruby on Rails 是否有类似的功能:

file_content_type = MIME::Types.type_for(file).first.content_type

这将返回特定 mime 类型的文件扩展名或后缀?因此,如果我传入“image/jpeg”,该函数将返回“jpg”

寻找一种更简洁的编码方式,而不是编写执行相同工作的 case 语句。

【问题讨论】:

    标签: ruby ruby-on-rails-3 mime-types file-extension


    【解决方案1】:

    Rack::Mime 有这个能力(而 Rack 是 Rails 的一个依赖):

    require 'rack/mime'
    Rack::Mime::MIME_TYPES.invert['image/jpeg']  #=> ".jpg"
    

    如果您要经常进行查找,您可能希望记住倒置哈希,因为这不是一项廉价的操作。

    【讨论】:

    • 酷,我试试看
    【解决方案2】:

    一个更好的更新的答案,因为我发现这个谷歌搜索。

    Mime::Type.lookup('image/jpeg').symbol.to_s
    # => "jpg"
    

    【讨论】:

    • Mime::Type.lookup 无法将 application/vnd.openxmlformats-officedocument.wordprocessingml.document 识别为 docx
    • 很高兴知道,为了清楚机架/哑剧,我对其进行了测试以验证。所以我猜这可能更全面?
    猜你喜欢
    • 2010-10-20
    • 2010-11-05
    • 2011-05-27
    • 2014-06-14
    • 2015-06-13
    • 2017-05-13
    • 1970-01-01
    相关资源
    最近更新 更多