diff --git a/Gemfile b/Gemfile index bbd80f5a9..69a86c716 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ end gem "rails", "5.2.1" gem "coderay", "~> 1.1.1" gem "request_store", "1.0.5" -gem "mini_mime", "~> 1.0" +gem "mini_mime", "~> 1.0.1" gem "actionpack-xml_parser" gem "roadie-rails", "~> 1.3.0" gem "roadie", "~> 3.2.1" diff --git a/lib/redmine/mime_type.rb b/lib/redmine/mime_type.rb index 73ac1fe4c..46be81b49 100644 --- a/lib/redmine/mime_type.rb +++ b/lib/redmine/mime_type.rb @@ -59,15 +59,11 @@ module Redmine # returns mime type for name or nil if unknown def self.of(name) - return nil unless name.present? - extension = File.extname(name)[1..-1].to_s.downcase - if extension.present? - @known_types ||= Hash.new do |h, ext| - type = EXTENSIONS[ext] - type ||= MiniMime.lookup_by_filename("a.#{ext}").try(:content_type) - h[ext] = type - end - @known_types[extension] + ext = File.extname(name.to_s)[1..-1] + if ext + ext.downcase! + EXTENSIONS[ext] || + ((mi = MiniMime.lookup_by_extension(ext)) && mi.content_type) end end