我想将IOS / Android客户端的视频文件上传到RAILS JSON api服务器。
我正在尝试使用仅限rails api的应用程序。对于图像上传,我习惯用base64格式对图像进行编码,并将此Base64值作为JSON参数传递。但是,如果我使用相同的逻辑,对于大型文件,例如10MB或20MB,则不实用。
非常感谢任何帮助。感谢您的帮助。
答案 0 :(得分:0)
它实际上是一个有效的选项,用于上传在Base64中编码的文件以获取正常的JSON-API请求。您可以使用以下代码粗略地解码Rails控制器中的String:
def upload_action_method
file = StringIO.new(Base64.decode(params[:file_data])
end
这种方法的缺点是你已经认识到增加的文件大小约为33%
另一种方法是从IOS或Android设备执行multi-part/form-data
POST请求。这样,Rails就可以访问params哈希中的File对象,就像普通的文件上传表单一样。您需要手动为本机设备构建有效请求或使用现有库。我引用了其他2个答案,显示了构建多部分请求的代码示例:
Android :Android- POST multipart form data
IOS :Upload image with parameters in Swift