首页 文章

使用multipart / form-data比JSON Base64更好?

提问于
浏览
18

我有一台服务器,我需要将文件和一些字段从客户端上传到服务器 . 我目前一直在使用标准的multipart / form-data .

然而,我发现使用multipart / form-data并不理想 . 我的服务器上的对象可能嵌套在其中的其他对象,因此表示为嵌入其他JSON对象的JSON对象 .

我希望客户端能够以REST-ful方式使用JSON表示开始发出POST / PUT请求,就像它对服务器的GET请求所期望的那样 . 这样我就不必将可能嵌套在JSON对象中的几个层的字段展平,以便使用multipart / form-data .

问题是,JSON不代表二进制数据 . Multipart / form-data似乎没有办法表示嵌套在其他字段值中的字段 . 但它确实有更好的文件上传处理 .

我对如何设计它感到茫然 . 我应该让客户端上传带有base64编码的字段的JSON,并获得25%的命中率吗?或者我应该在Multipart / form-data请求中将JSON对象表示为某种“json”变量,并将二进制文件作为另一个变量上载?

1 回答

  • 6

    我是否应该让客户端使用base64编码的字段上传JSON,并获得25%的命中率?

    自4/3 = 1.33以来,命中率为33% .

    或者我应该在Multipart / form-data请求中将JSON对象表示为某种“json”变量,并将二进制文件作为另一个变量上载?

    这应该工作 .

    您也可以考虑这种方法:使用multipart发送所有文件,然后获取一些文件识别器作为响应 . 把这个识别器放在你的json中,无论如何都要发送它 . 如果您有许多发送文件的方案,这种方法可能会有所帮助:您可能始终使用相同的请求将它们发送到服务器,然后获取其标识符;之后,他们喜欢你 .

相关问题