我最近更新了Paperclip 4 (4.1.1具体),需要使用validates_attachment
验证文件。我尝试了3种方法,正如GitHub文档所暗示的那样:
validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
以及this帖子中建议的两种方式
所有案例都给我一个ActiveRecord::RecordInvalid
例外,说明图片的内容类型无效。
我在Grape API中使用这行代码创建图像:
image = ActionDispatch::Http::UploadedFile.new(params[:data])
它收到的数据来自Android使用Apache HttpClient
' s MultipartEntityBuilder
它打印它运行的命令以检查mime类型,如file -b --mime-type '/path/to/file
,但当我运行它时,它给我image / jpeg
该班只有另外两行:
has_attached_file :image
attr_accessible :image
想法为什么会不断失败?
答案 0 :(得分:1)
您可能想尝试进行一些测试,以消除此处出现问题的变量:您可以尝试不同版本的Paperclip,~3.5? Paperclip 4仍然有一些问题需要解决(我在我自己的项目中已经注意到这一点,它认为我的正常上传有一个欺骗性的内容类型)。
或者:您可以尝试以不同的方式创建图像,只是为了测试吗?您提供的验证码看起来是正确的。
答案 1 :(得分:1)
我遇到了与你相同的问题(甚至试过了线程建议的其他方式),而Rachel对这个版本是正确的。回形针4有一些欺骗问题。将其更改为3.5解决了我的问题。
顺便说一句,如果你仍想让它发挥作用,那么似乎是here所讨论的问题(给出了解决方法)