为什么不总是使用enctype="multipart/form-data"?

38

在构建HTML表单时,为什么我们不总是使用enctype="multipart/form-data"

4个回答

32

multipart/form-dataapplication/x-www-form-urlencoded 更加笨重;后者只是一堆键值对(无论是用于 GET 还是 POST 都可以按照相同的方式解析),而前者需要完整的 MIME 支持,因此在你有无法简单表示为键/值对的数据时更有用。


我们最近几个月一直使用enctype="multipart/form-data",即使是没有文件上传的表单也是如此。这很好用。这使得我们的模板更加简单。这是朝着“无条件”的方向迈出的一小步。由于在我的上下文中它并不重要,所以我没有进行任何字节计数。 - guettli

7

因为它在服务器和自定义客户端上都很难处理。简单总比复杂好,除非简单根本行不通。


1
如果CPU有点忙,我不会感到疼痛。你认为这种开销是可以测量的吗? - guettli

1

使用PHP时,表单的enctype类型并不重要。你总是会得到键/值对。

所以,如果更难编码是唯一的原因,并且你正在使用PHP,只需使用enctype="multipart/form-data"。

还有其他原因吗?


11
那只是PHP而已。世界上除了PHP之外还有更多的Web编程语言。 - BalusC
11
@BalusC说:“而且你正在使用PHP”。Bruno并没有谈论其他的Web编程语言。 - mattalxndr

0

多部分隐式意味着我们将使用不同的 MIME 类型。例如,发送二进制文件,您将有一个带有 x-www-form-urlencoded 部分和另一个带有 octet-stream 的部分。大多数情况下,您发送的内容来自相同的 MIME 类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接