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

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

multipart/form-dataapplication/x-www-form-urlencoded大得多; 后者只是一堆键和值(无论是GET还是POST都可以采用相同的方式进行parsing),而前者需要完全的MIME支持,因此当数据不能简单表示为键/值对。

因为无论是在服务器还是在自定义客户端上处理都是一件痛苦的事情。 简单比复杂更好,除非简单不行。

对于PHP来说,表单所包含的内容并不重要。 你总是得到键/值对。

因此,如果编码困难是不使用PHP的唯一原因,只需使用enctype =“multipart / form-data”即可。

还有其他原因吗?

Mulipart暗示我们要使用不同的MIMEtypes。 例如,发送一个二进制文件,你将有一个部分与x-www-form-urlencoded部分,另一部分与八位字节stream。 大部分时间你发送的是来自相同的MIMEtypes。