IOS 用的是 ASIFormDataRequest

ROR接收的数据像十六进制的东西 如图

流的格式 imagedata bytes 如图:

ror怎么直接使用这个值还真不清楚  单把 二/八/十六 进制的东西转换为图片倒是简单

那么这里隆重推荐 base64 

采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

我们网页form提交一个图片 设置类型为 multipart/form-data 我们在后台可以直接得到一个data对象然后上传到服务器

代码示例(直接保存文件):

#file为上传的data
File.open("#{RAILS_ROOT}/public/route_images/#{@filename}", "wb") do |f|
        f.write(file.read)
end

那么接收base64位数据ror也有很好的处理

#file为base64数据
path= RAILS_ROOT+"/public/route_images/#{@filename}"
image = Base64::decode64(file)
File.open(path, "wb" ) do |back_out|
     back_out << image
end
#此时便把base64保存为一张图片了