在回形针上保存图像时缺少扩展名

问题描述

|
 image = PortfolioFileItem.find(107)  
 img_source = \"http://s3.amazonaws.com/test/portfolio_file_items_final/original/1.jpg\"
 image.picture_from_url(img_source)
 image.save(false)
图片保存完成,但缺少图片扩展名。这是保存的样本图像名称:  打开uri20110528-6779-fpiust-0。 请帮我解决问题。谢谢     

解决方法

        要向回形针添加扩展名,请在has_attached_file之后添加此行作为选项
:path => \":rails_root/public/:attachment/:id/:style/:basename.:extension\"
您可以自定义此路径以适合您的需求,但是最后必须有have2ѭ,:extension是可用于插值的许多值之一。 有关更多信息,请参见此博客文章。     ,        如果实际文件最初没有扩展名,则可以检测到扩展名并在保存之前添加它
  def besfore_save
    tempfile = data.queued_for_write[:original]
    unless tempfile.nil?
      extension = File.extname(tempfile.original_filename)
      if !extension || extension == \'\'
        mime = tempfile.content_type
        ext = Rack::Mime::MIME_TYPES.invert[mime]
        self.data.instance_write :file_name,\"#{tempfile.original_filename}#{ext}\"
      end
    end

    true
  end