我遇到過某些文件類型的類似問題。我使用Ubuntu 12.04和file --mime
並不總能找到文件類型,例如.doc文件。
我通過修改回形針使用file --mime
來解決這個問題,然後回到mimetype
。
事情是這樣的:
module Paperclip
class FileCommandContentTypeDetector
private
def type_from_file_command
# -- original code --
# type = begin
# # On BSDs, `file` doesn't give a result code of 1 if the file doesn't exist.
# Paperclip.run("file", "-b --mime :file", :file => @filename)
# rescue Cocaine::CommandLineError => e
# Paperclip.log("Error while determining content type: #{e}")
# SENSIBLE_DEFAULT
# end
# if type.nil? || type.match(/\(.*?\)/)
# type = SENSIBLE_DEFAULT
# end
# type.split(/[:;\s]+/)[0]
# -- new code --
type = begin
Paperclip.run('file', '-b --mime :file', file: @filename)
rescue Cocaine::CommandLineError
''
end
if type.blank?
type = begin
Paperclip.run('mimetype', '-b :file', file: @filename)
rescue Cocaine::CommandLineError
''
end
end
if type.blank? || type.match(/\(.*?\)/)
type = SENSIBLE_DEFAULT
end
type.split(/[:;\s]+/)[0]
end
end
end
你有沒有需要「開URI」在你的文件的頂部? – fengd