2010-10-25 31 views
1

我的所有导轨paper_clip图像都以“application/octet-stream”的形式上传到Rails中。Paper_clip s3 - application/octet-stream?

这是流水线问题。

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

感谢

回答

1

好了,一般你总是可以通过使用“哑剧/类型”检测正确的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 
+0

似乎是错误的? “NoMethodError(undefined method'original_filename'for#): app/models/photo.rb:29:'swfupload_file =' app/controllers/photos_controller.rb:15:in'upload ' app/middleware/flash_session_cookie_middleware.rb:14:'call' “ – TheExit 2010-10-25 17:23:11

+0

你确定,你传递文件名为照片[image]('fileDataName':'photo [image]')?如果是这种情况,请尝试在调试模式下运行堆栈,并将“调试器”作为第一个调用的upload_file方法。然后你可以检查数据对象。 – mdrozdziel 2010-10-25 19:25:35