Android 如何在Rails中使用RESTAPI上传视频文件
我想将一个视频文件从IOS/Android客户端上传到RAILS JSON api服务器 我正在从一个只支持rails api的应用程序中尝试这一点。对于图像上传,我使用base64格式对图像进行编码,并将此base64值作为JSON参数传递。但是如果我使用相同的逻辑,那么对于一个大文件(比如10MB或20MB)来说是不实际的Android 如何在Rails中使用RESTAPI上传视频文件,android,ruby-on-rails,json,video,Android,Ruby On Rails,Json,Video,我想将一个视频文件从IOS/Android客户端上传到RAILS JSON api服务器 我正在从一个只支持rails api的应用程序中尝试这一点。对于图像上传,我使用base64格式对图像进行编码,并将此base64值作为JSON参数传递。但是如果我使用相同的逻辑,那么对于一个大文件(比如10MB或20MB)来说是不实际的 任何帮助都将不胜感激。提前感谢您的帮助。对于正常的JSON-API请求,上载Base64编码的文件实际上是一个有效的选项。您可以使用以下代码大致解码Rails控制器中的字
任何帮助都将不胜感激。提前感谢您的帮助。对于正常的JSON-API请求,上载Base64编码的文件实际上是一个有效的选项。您可以使用以下代码大致解码Rails控制器中的字符串:
def upload_action_method
file = StringIO.new(Base64.decode(params[:file_data])
end
这种方法的缺点是您已经意识到文件大小增加了约33%。另一种方法是从IOS或安卓设备执行
多部分/表单数据
POST请求。这样,Rails就可以访问params散列中的File对象,就像普通的文件上传表单一样。您需要手动为本机设备生成有效请求,或使用现有库。我引用了另外两个答案,其中显示了构建多部分请求的代码示例:安卓系统:
IOS:感谢您的回复。我试图实现上述方法。我使用postman传递带有“formdata”请求的参数,但是我得到了一个json解析错误JSON::ParserError at/tasks==========================>822:意外令牌位于------WebKitFormBoundaryA2JDVVVYPSXABIOSK内容处置:表单数据;name=“price”200-----webkitformboundaryajdvvypsxabiosk内容处置:表单数据;name=“pic”;filename=“SampleVideo\u 1280x720\u 1mb.mp4”内容类型:video/mp4“我做了什么,通过邮递员选择了一个视频文件并发送请求。你能帮忙吗?