在构建HTML表单时,为什么我们不总是使用enctype="multipart/form-data"
?
multipart/form-data
比 application/x-www-form-urlencoded
更加笨重;后者只是一堆键值对(无论是用于 GET
还是 POST
都可以按照相同的方式解析),而前者需要完整的 MIME 支持,因此在你有无法简单表示为键/值对的数据时更有用。
因为它在服务器和自定义客户端上都很难处理。简单总比复杂好,除非简单根本行不通。
使用PHP时,表单的enctype类型并不重要。你总是会得到键/值对。
所以,如果更难编码是唯一的原因,并且你正在使用PHP,只需使用enctype="multipart/form-data"。
还有其他原因吗?
多部分隐式意味着我们将使用不同的 MIME 类型。例如,发送二进制文件,您将有一个带有 x-www-form-urlencoded 部分和另一个带有 octet-stream 的部分。大多数情况下,您发送的内容来自相同的 MIME 类型。