jpeg标题包含我想要使用这些值验证的宽度和高度(以像素为单位)(最大19200x19200)我可以用回形针做到吗?
或者我可以在上传文件时验证它。我正在使用。 uploadify
答案 0 :(得分:2)
如果它只是你关注的JPEG,你可以用以下内容读取EXIF数据:http://www.nihilogic.dk/labs/exifjquery/你可以在其中一个uploadify回调中触发它(例如:onselect):http://www.uploadify.com/documentation/events/onselect/ < / p>
否则,如果您无法读取EXIF,则需要上传,处理它,如果超过您的需要,请将其丢弃并发回错误。
来自回形针自述文件(https://github.com/thoughtbot/paperclip/blob/master/README.md):
后处理之前和之后 一步,Paperclip回电话给 有一些回调的模型,允许 要更改或取消的模型 处理步骤。回调是 before_post_process和 after_post_process
无论如何,您可以使用回形针来归档尺寸:https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/geometry.rb#L14
dimensions = Paperclip::Geometry.from_file(original_file)
如果文件太大,Paperclip也会为您调整大小,因此用户上传大文件无关紧要:
has_attached_file :avatar, :styles => { :original => ["19200x19200>", :jpg] }
答案 1 :(得分:0)
完整的标准JPEG文件中没有可用的分辨率信息。它意味着以72dpi显示,因为JPEG是为网络制作的。见http://en.wikipedia.org/wiki/JPEG_File_Interchange_Format#Resolution_and_aspect_ratio
但是大多数图形程序都将EXIF数据破解成JPEG(这不符合标准,并且或多或少是Adobe的专有技术)。您可以尝试从此EXIF数据中提取分辨率,并将其保存为x-Resolution
和y-Resolution
。 rMagick宝石将是一个良好的开端。