enctype='multipart/form-data'在HTML表单中意味着什么?我们应该何时使用它?
当前回答
enctype='multipart/form-data是一种编码类型,允许通过POST发送文件。很简单,如果没有这种编码,文件就无法通过POST发送。
如果希望允许用户通过表单上载文件,则必须使用此enctype。
其他回答
通常这是当您有一个POST表单,需要将文件上载作为数据。。。这将告诉服务器它将如何对传输的数据进行编码,在这种情况下,它不会被编码,因为它只会将文件传输并上传到服务器,例如,当上传图像或pdf时
enctype(ENCode TYPE)属性指定表单数据提交到服务器时应如何编码。multipart/formdata是enctype属性的值之一,用于具有文件上载的表单元素中。多部分是指将表单数据分成多个部分并发送到服务器。
当您发出POST请求时,必须以某种方式对构成请求主体的数据进行编码。
HTML表单提供了三种编码方法。
application/x-wwww-form-urlencoded(默认值)多部分/表单数据文本/普通
添加application/json的工作已经完成,但已经放弃。
(使用HTML表单提交以外的其他方式生成的HTTP请求也可以进行其他编码。JSON是web服务的常用格式,有些仍然使用SOAP。)
格式的细节对大多数开发人员来说并不重要。要点如下:
切勿使用文本/纯文本。
编写客户端代码时:
当表单包含任何<input-type=“file”>元素时,请使用multipart/form数据否则,您可以使用multipart/form数据或application/x-www-form-urlencoded,但application/x-ww-form-urlencode将更有效
编写服务器端代码时:
使用预先编写的表单处理库
大多数(如Perl的CGI->param或PHP的$_POST超级全局公开的参数)都会为您处理这些差异。不要费心分析服务器接收的原始输入。
有时您会发现一个库不能同时处理这两种格式。Node.js最流行的处理表单数据的库是主体解析器,它不能处理多部分请求(但有文档推荐了一些可以处理的替代方案)。
如果您正在编写(或调试)用于解析或生成原始数据的库,那么您需要开始担心格式。出于兴趣,你可能也想了解一下。
application/x-www-form-urlencoded与URL末尾的查询字符串大致相同。
multipart/form数据要复杂得多,但它允许将整个文件包含在数据中。结果的一个例子可以在HTML4规范中找到。
text/plain是HTML5引入的,仅用于调试-从规范来看:它们不能被计算机可靠地解释-我认为其他与工具(如大多数浏览器的开发工具中的网络面板)相结合的工具更好)。
enctype='multipart/form-data是一种编码类型,允许通过POST发送文件。很简单,如果没有这种编码,文件就无法通过POST发送。
如果希望允许用户通过表单上载文件,则必须使用此enctype。
enctype属性指定表单数据提交到服务器时应如何编码。只有当method=“post”时,才能使用enctype属性。未编码任何字符。使用具有文件上载控件的表单时,需要此值
来自W3学校