Ruby on rails 纸夹s3-应用程序/八位字节流?

Ruby on rails 纸夹s3-应用程序/八位字节流?,ruby-on-rails,ruby-on-rails-3,paperclip,mime-types,Ruby On Rails,Ruby On Rails 3,Paperclip,Mime Types,所有my rails纸夹图像都将作为“应用程序/八位字节流”上传到rails 这是造成问题的原因 如何在Rails中将内容/类型设置为正确的类型?图像/png等,基于上传的实际图像 谢谢通常,您可以通过使用“mime/types”从上传的文件本身检测正确的mime类型: # Controller def create @photo = Photo.new(:upload_file => params[:photo][:image]) ... end # Model class

所有my rails纸夹图像都将作为“应用程序/八位字节流”上传到rails

这是造成问题的原因

如何在Rails中将内容/类型设置为正确的类型?图像/png等,基于上传的实际图像


谢谢

通常,您可以通过使用“mime/types”从上传的文件本身检测正确的mime类型:

# Controller

def create
  @photo = Photo.new(:upload_file => params[:photo][:image])
  ...
end

# Model

class Photo < ActiveRecord::Base  
  require 'mime/types'
  ...
  def upload_file=(data)
    data.content_type = MIME::Types.type_for(data.original_filename).to_s
    self.image = data
  end 
end 
#控制器
def创建
@photo=photo.new(:upload_file=>params[:photo][:image])
...
结束
#模型
类照片
通常,您可以通过使用“mime/types”从上传的文件本身检测正确的mime类型:

# Controller

def create
  @photo = Photo.new(:upload_file => params[:photo][:image])
  ...
end

# Model

class Photo < ActiveRecord::Base  
  require 'mime/types'
  ...
  def upload_file=(data)
    data.content_type = MIME::Types.type_for(data.original_filename).to_s
    self.image = data
  end 
end 
#控制器
def创建
@photo=photo.new(:upload_file=>params[:photo][:image])
...
结束
#模型
类照片
似乎有错误?“NoMethodError(未定义的方法<代码>原始文件名]):app/models/photo.rb:29:inswfupload\u file='app/controllers/photos\u controller.rb:15:in
upload'app/middleware/flash\u session\u cookie\u middleware.rb:14:in
call'”您确定要将文件名作为photo[image]('fileDataName':'photo[image])传递吗?如果是这种情况,请尝试在调试模式下运行堆栈,并将“debugger”作为upload\u file方法中的第一个调用。然后可以检查数据对象。是否有错误?“NoMethodError(未定义的方法<代码>原始文件名]):app/models/photo.rb:29:inswfupload\u file='app/controllers/photos\u controller.rb:15:in
upload'app/middleware/flash\u session\u cookie\u middleware.rb:14:in
call'”您确定要将文件名作为photo[image]('fileDataName':'photo[image])传递吗?如果是这种情况,请尝试在调试模式下运行堆栈,并将“debugger”作为upload\u file方法中的第一个调用。然后可以检查数据对象。