'multipart / related'和'multipart / form-data'之间有什么区别?我应该何时使用它们?

时间:2016-10-10 14:17:39

标签: http file-upload upload protocols

我能够找到很多关于multipart / form-data的信息,但没有太多关于multipart / related的信息。在协议/请求格式方面,有人可以解释这两个http规范在文件上传方面的差异吗?

1 个答案:

答案 0 :(得分:2)

multipart / form-data 用于在单个POST请求中上传MIME兼容表示文件,例如图片和视频文件以及相关元数据。当您在线填写附表中的图片然后按“提交”按钮时,会发生这种情况。

multipart / related 用于复合文档,您需要组合单独的正文部分以提供消息的完整含义。一个用例是将一些Base64编码的图像与相关的元数据一起提交。

一个POST请求示例是(https://cloud.google.com/storage/docs/json_api/v1/how-tos/multipart-upload):

POST https://www.googleapis.com/upload/storage/v1/b/myBucket/o?uploadType=multipart HTTP/1.1
Authorization: Bearer [YOUR_AUTH_TOKEN]
Content-Type: multipart/related; boundary=foo_bar_baz
Content-Length: [NUMBER_OF_BYTES_IN_ENTIRE_REQUEST_BODY]

--foo_bar_baz
Content-Type: application/json; charset=UTF-8

{
  "name": "myObject"
}

--foo_bar_baz
Content-Type: image/jpeg

[JPEG_DATA]
--foo_bar_baz--

您可以在https://msdn.microsoft.com/en-us/library/ms527355(v=exchg.10).aspx

找到更多详情