2014-09-06 32 views
0

我們在Android上創建了一個用戶可以上傳圖像的應用程序。該圖像通過Rails應用程序中的發佈請求作爲位圖發送。我得到的一個例子是this從十六進制代碼重新創建圖像

我想用這個十六進制代碼字符串重新創建圖像,然後將它保存到我的Rails應用程序,就像我可以用Paperclip做的那樣。

任何提示或正確的方向指導將非常感激。

+0

只需將'params [:file]'寫入文件 – 2014-09-06 11:27:50

回答

1

對於我來說,這看起來非常像一個JPEG文件(它具有0xFFD8FF開始),所以你可以只將字符串保存到一個文件,就大功告成了:

class UploadsController 

    def create 
    storage_path.open('w') {|f| f.write params[:file] } 
    head :ok 
    end 

protected 

    def storage_path 
    @storage_path ||= Rails.root.join('data/uploads', current_user.id, Time.now.to_i.to_s(36) << '.jpg') 
    end 
end 

。當然,這是假設你有一個current_user方法標識登錄的用戶(例如Devise),並且你想在$RAILS_ROOT/data/uploads/$USER_ID/本地保存該文件。

對於生產,我會創建一個Upload(或Image(或Media))模型(belongs_to :user),和移動處理邏輯(即找到存儲的地方,將字符串轉換爲文件中,額外的檢查)轉換成類。