2014-09-06 33 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),和移动处理逻辑(即找到存储的地方,将字符串转换为文件中,额外的检查)转换成类。