multipart/form-data 没有边界

Posted

技术标签:

【中文标题】multipart/form-data 没有边界【英文标题】:multipart/form-data without a boundary 【发布时间】:2017-10-11 11:43:18 【问题描述】:

multipart/form-data 请求是否有效且没有边界?根据规范,当有超过1个部分时,使用边界将它们分开(并且该边界不应是身体的一部分)。我有一个请求,其中有一个主体作为原始内容或文件,并且在内容类型中我们传递 "multipart/form-data" 。这种请求真的有效吗?

【问题讨论】:

【参考方案1】:

我认为multipart/form-data 没有边界的请求是无效

根据RFC7231,只有1部分的请求仍然是有效的multipart MIME类型,应该遵循multipart MIME规则:

MIME 提供了许多“多部分”类型——将一个或多个表示封装在单个消息正文中。所有多部分类型共享一个通用语法...并包含一个边界参数作为媒体类型值的一部分。

根据RFC2046,“边界”是必填项:

多部分实体的 Content-Type 字段需要一个参数,“边界”。

...

“多部分”媒体类型的唯一强制全局参数是边界参数

【讨论】:

仅供参考:multipart/form-data media type registry 也是结论性的。

以上是关于multipart/form-data 没有边界的主要内容,如果未能解决你的问题,请参考以下文章

API 控制器 POST 方法 multipart/form-data 在主体内使用边界获取消息

如何使用 XMLHttpRequest 和 FormData 对象在 multipart/form-data 上设置我自己的边界

php + curl + multipart/form-data + 代理授权(基本)

如何在 Spring Boot 中使用 multipart/form-data 处理没有 Content-Disposition 标头的 POST

如何将 multipart/form-data 发送到 ASP.NET Core Web API?

如果表单数据边界包含在附件中怎么办?