2010-10-25 36 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