Ruby on rails 我想从我上传的每一个细节。。使用附件

Ruby on rails 我想从我上传的每一个细节。。使用附件,ruby-on-rails,Ruby On Rails,我要上传文件中的每一个细节。。我使用的是附件_-fu,我想知道当拍摄图像时,ISO是什么,使用的是哪种型号的相机,简言之,我想要图像的所有详细属性,有可能吗?怎么做 您正在查找的信息是称为“Exif”(可交换图像文件格式)的元数据,可在jpeg和tiff图像中找到。在png或gif文件中找不到此选项 有一个Exif gem读取此元数据。您可以找到它(及其文档) 棘手的部分可能是让它与附件一起工作。最简单的方法是在模型中创建回调: class Foo < ActiveRecord::Base

我要上传文件中的每一个细节。。我使用的是附件_-fu,我想知道当拍摄图像时,ISO是什么,使用的是哪种型号的相机,简言之,我想要图像的所有详细属性,有可能吗?怎么做

您正在查找的信息是称为“Exif”(可交换图像文件格式)的元数据,可在jpeg和tiff图像中找到。在png或gif文件中找不到此选项

有一个Exif gem读取此元数据。您可以找到它(及其文档)

棘手的部分可能是让它与附件一起工作。最简单的方法是在模型中创建回调:

class Foo < ActiveRecord::Base
  acts_as_attachment
  after_attachment_saved do |record|
     # do your exif stuff here using the Exif gem         
   end
 end
class Foo
通过rmaiggic和Exif保存任何上传后,我们可以获得所有元数据。。我们可以在控制器顶部添加所有必须写入的细节、和

需要“RMagick”

安装gem名称EXIF::gem安装EXIF get\u exif\u by\u entry()将提供所有可用函数 谢谢大家帮助我
Arpit

谢谢你的朋友,你的答案对我很有用,我很晚才得到,但你的答案是perfact。我们也可以使用Rmagick来使用EXIF。
  @upload.save        

    image = Magick::ImageList.new("public/"+ @upload.public_filename)        
    @upload.date_taken = DateTime.strptime(image.get_exif_by_entry('DateTime')[0][1], "%Y:%m:%d %H:%M:%S")
    @upload.model  = image.get_exif_by_entry('model')[0][1]
    @upload.camera  = image.get_exif_by_entry('make')[0][1]
    @upload.iso  =  image.get_exif_by_entry('ISOSpeedRatings')[0][1]
    @upload.update_attributes(params[:@upload])