我的模型看起来像:
class Art < ActiveRecord::Base
attr_accessible :image
has_attached_file :image, :styles => { :medium => "620x620>", :thumb => "200x200>" }
validates_attachment :image, :content_type => { :content_type => "image/png" }
end
它验证并允许我上传PNG文件png_file.png并且不允许我上传JPG文件jpg_file.jpg。
但如果我将PNG文件重命名为png_file.jpg,则不允许我上传图像。如果我将JPG文件重命名为jpg_file.png,则错误地成功上传文件。
我想知道如何通过其真实内容而不是文件扩展名来验证上传的文件。有谁知道如何解决这个问题?
答案 0 :(得分:2)
您可以使用原始二进制文件读取文件,并检查它是否为PNG类型:
File.open('path-to-your-file', 'rb').read(9).include?('PNG')