如何限制Paperclip仅接受图片?

13
我该如何限制 Paperclip 只接受图片?如果使用亚马逊 S3 存储,是否相关?感谢阅读。

3
Moonpatrol 对此有一个非常好的回答,我会接受他的答案,特别是对于新手来说。 - Joshua Pinter
2个回答

25

3
对于Rails 4,正则表达式应为 /\Aimage\/(jpg|jpeg|pjpeg|png|x-png|gif)\z/ - zsalzbank
如果我只想限制为 .csv 文件,我该如何编写代码?validates_attachment_content_type :csv, :content_type => /^csv/(csv)$/, :message => '文件类型不允许(仅支持 csv 文件)'。 - Jubl

13

Paperclip有像validates_attachment_presencevalidates_attachment_content_typevalidates_attachment_size这样的验证方法。

因此,你需要做的就是传递你想作为附件的图像的mime类型:

validates_attachment_content_type 'image/png', 'image/jpg'

谢谢你的帮助。关于rdoc中的内容:“需要注意的是,Internet Explorer上传文件时使用的content_types可能与您预期的不同。例如,JPEG图像被赋予image/pjpeg,PNG则是image/x-png,因此在确定如何匹配时请记住这一点。默认情况下允许所有。”,我是否可以使用标准列表来允许所有浏览器中的所有图像? - ben
1
我不知道。你可以尝试使用通配符,如 image/*,但我不确定 paperclip 是否支持。 - Eimantas
验证附件内容类型的参数是否正确? - user483040

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接