ruby-on-rails - Web 服务的多部分响应

标签 ruby-on-rails web-services httpresponse multipart

在一个用 Rails 编写的 Web 服务中,我想用一个文件和附加信息来回答。

为此,我考虑使用多部分数据进行响应。如何使用文件和 json 发送多部分响应?

如果有更好的方法来做到这一点,请告诉我。请注意,无法在我发送的文件中添加额外数据。

面对问题的加分项,即同时发送文件和数据。我已经通过执行多部分请求来实现这一点,但是如果有更好的方法来做到这一点,我想知道。

最佳答案

我不知道您正在使用哪种前端以及您的浏览器兼容性要求是什么,或者您只需要与其他应用程序集成的网络服务,但假设您通过 ajax 与服务器进行通信并且您的应用程序以现代方式运行浏览器(或者您可以使用 flash 插件),您可以将文件内容作为 base64 编码字符串作为 json 响应的一部分返回。所以在 rails Controller 中你会有这样的东西:

render json: {success: true, file: {name: 'invoice.pdf', data: Base64.encode64(@file.read), extra_info: 'some info'}}

在客户端,您可以处理该 json,从中获取您需要的所有元数据,并让用户将文件保存到他们的计算机上。为此,您可以使用 flash pluginnative api implementation

通过这种方式,您可以将带有任何元数据的文件返回给用户,并且在客户端用户可以根据需要保存文件。此外,只要其他应用程序可以解析 json,它们就可以使用相同的 Web 服务。

关于ruby-on-rails - Web 服务的多部分响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18192044/

相关文章:

java - 在 RESTful Web 服务中将对象作为参数传递

java - 从 PHP 到 Android 的 Bool HTTP 响应

java - 向 Spring ResponseEntity 添加一个新的 Header

android - HttpResponse execute for android 中的主机名不能为空

mysql - 从 rails 中的迁移脚本加载 csv 时遇到问题

ruby-on-rails - 如何从 github 中删除目录?

java - 如果soapAction 是URN :something?,我的URL 是什么

ruby-on-rails - 寻求构建电子商务 Rails 应用程序的指导

ruby-on-rails - 535-5.7.8 不接受用户名和密码

c# - 增加 ServicePointManager.DefaultConnectionLimit 的缺点