Ruby on rails 回形针无法为没有扩展名的文件设置附件内容类型

Ruby on rails 回形针无法为没有扩展名的文件设置附件内容类型,ruby-on-rails,ruby-on-rails-3,amazon-s3,paperclip,Ruby On Rails,Ruby On Rails 3,Amazon S3,Paperclip,我正在使用rails 3+回形针+s3(私有bucket)来允许用户上传文件 坏的是,用户可以上传不带扩展名的文件,比如rails gemfile,它只是“gemfile”而不是“gemfile.txt”。当您上传此文件时,回形针不会设置附件内容类型 我正在确定内容类型,如下所示: self.attachment.instance_write(:content_type, MIME::Types.type_for(self.attachment_file_name).to_s) 有没有更好的方

我正在使用rails 3+回形针+s3(私有bucket)来允许用户上传文件

坏的是,用户可以上传不带扩展名的文件,比如rails gemfile,它只是“gemfile”而不是“gemfile.txt”。当您上传此文件时,回形针不会设置附件内容类型

我正在确定内容类型,如下所示:

self.attachment.instance_write(:content_type, MIME::Types.type_for(self.attachment_file_name).to_s)

有没有更好的方法可以更可靠地解决上述问题?谢谢

您要求MIME::Types查找具有给定文件名的类型。它希望附件文件名中有文件扩展名(如
image\u 12.jpg
:扩展名是
.jpg
,因此
MIME::Types.type\u for
知道该文件是一个图像)

你在寻找什么:

params[:image].content_type # return the content_type
# assuming :image is the name of the form file field
一点研究:

根据其属性返回属于文件的MIME::类型列表 文件扩展名


+ctrl-F“键入”

您能接受@RachelDRoy的答案吗?