2011-08-15 76 views
2

我目前保存圖像字符串(這是如何通過API提供)作爲我的數據庫中的二進制文件,但我需要(創建後),將其更改爲文件結構,可能使用Paperclip/Carrierwave和S3。Rails圖像字符串圖像文件

將二進制轉換爲圖像文件的最佳方法是什麼? JPG?

+0

你所談論的只是你的BLOB數據保存到文件系統?您可以創建一個ruby應用程序,將其轉到每個數據庫記錄並將其移至系統。至於兩個Paperclip稍微難以使用,但我發現它給Windows機器提供了更多的兼容性,而Carrierwave更易於使用,但如果您曾經使用過Windows,它將給您的圖像處理器帶來很大的麻煩。 –

+0

我不打算使用Windows,但它會在Heroku – amaseuk

+0

然後我不確定,都需要安裝ImageMagick的後端。我的猜測是你在Heroku上會很好,因爲它可能是基於Nix的。 –

回答

3

這奏效了:

sio = StringIO.new(Base64.decode64(string)) 

[來源:base64 photo and paperclip -Rails]

+0

你能寫出更多的代碼嗎? – ajbraus

+0

你需要什麼代碼? – amaseuk

+0

我想你在解碼之後用sio對象做了什麼?就像用戶has_attachment:file一樣,那麼你說User.create(:avatar => sio)? – ajbraus

1
file_arr = Model.find(:all) 
file_arr.each do |file| 
    File.open(file.name,'w'){|f| f.write(file.blob)} 
end 

將我的猜測如何做到這一點。模型是您的模型.name是存儲在數據庫中的名稱,.blob是blob字段...您可以通過Rails控制檯執行此操作。

這可能不是最好的答案,但它可能會給你一個開始。

+0

謝謝,我找到了類似於您的建議的解決方案。 – amaseuk