ruby-on-rails – Paperclip的content_type根据应用程序无效,但
发布时间:2020-12-17 03:40:45 所属栏目:百科 来源:网络整理
导读:我是Paperclip的新手,这一切看起来都很快.我试图让用户只上传PNG或JPG,虽然我上传了一个JPG,我的content_type验证了JPG但它仍然无效. 我已经尝试删除PNG content_type,但无济于事. 我也尝试过使用has_attached_file,但似乎忽略了:content_type和stuff.因为
我是Paperclip的新手,这一切看起来都很快.我试图让用户只上传PNG或JPG,虽然我上传了一个JPG,我的content_type验证了JPG但它仍然无效.
我已经尝试删除PNG content_type,但无济于事. 我也尝试过使用has_attached_file,但似乎忽略了:content_type和stuff.因为如果我上传了一个JPG:content_type =>只有“image / png”;它没有 有什么建议? validates_attachment :avatar,:styles => { :medium => "300x300",:thumb => "100x100" },:content_type => { :content_type => "image/jpg",:content_type => "image/png" },:size => { :in => 0..1.megabytes } 哦,当我在它的时候;我想让我的拇指和中等到固定的宽度.所以没有缩放像100×80,但只有100×100.我怎样才能做到这一点? 解决方法
您似乎正在尝试使用一些Paperclip验证,您可以在此处查看:
Paperclip – Validate File Type but not Presence
根据那个答案,你可以使用这个: validates_attachment_content_type :sound,:content_type => ['audio/mp3','application/x-mp3'],:if => :sound_attached? 另一种方法是使用lambda来检查您是否正在处理特定的内容类型.以下是我们的一个实时应用程序的示例: has_attached_file :attachment,styles: lambda { |a| a.instance.is_image? ? {:small => "x200>",:medium => "x300>",:large => "x400>"} : {:thumb => { :geometry => "100x100#",:format => 'jpg',:time => 10},:medium => { :geometry => "300x300#",:time => 10}}} def is_image? attachment.instance.attachment_content_type =~ %r(image) end Lambda只是衡量内容类型是否符合您需要的一种方式(I.E您只允许JPG图像).为了验证图像(而不是视频)的存在,您需要 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |