enctype ='multipart / form-data'是什么意思?

enctype ='multipart / form-data'是什么意思?

enctype='multipart/form-data'HTML表单中的含义是什么?我们何时应该使用它?



慕少森
浏览 1833回答 4
4回答

九州编程

当您发出POST请求时,您必须以某种方式对构成请求主体的数据进行编码。HTML表单提供三种编码方法。application/x-www-form-urlencoded&nbsp;(默认)multipart/form-datatext/plain正在进行添加工作application/json,但这已被放弃。(使用除HTML表单提交之外的其他方式生成的HTTP请求,可以进行其他编码。)格式的细节对大多数开发人员来说无关紧要。重点是:切勿使用text/plain。在编写客户端代码时:使用multipart/form-data时,你的形式包括任何<input type="file">元素否则,你可以使用multipart/form-data或application/x-www-form-urlencoded,但application/x-www-form-urlencoded效率会更高在编写服务器端代码时:使用预先编写的表单处理库大多数(例如Perl&nbsp;CGI->param或PHP的$_POST超全局公开的那个)将为您处理差异。不要费心去解析服务器收到的原始输入。有时你会发现一个无法处理这两种格式的库。Node.js用于处理表单数据的最流行的库是body-parser,它不能处理多部分请求(但是有文档推荐一些替代方案可以)。如果您正在编写(或调试)用于解析或生成原始数据的库,那么您需要开始担心格式。您可能还想了解它的利益。application/x-www-form-urlencoded&nbsp;与URL末尾的查询字符串大致相同。multipart/form-data更复杂但它允许整个文件包含在数据中。可以在HTML 4规范中找到结果的示例。text/plain由HTML 5引入并且仅用于调试 - 来自规范:它们不能被计算机可靠地解释&nbsp;- 我认为其他的与工具相结合(如大多数浏览器的开发人员工具中的Net选项卡)更好为了那个原因)。

繁花不似锦

enctype='multipart/form-data是一种允许通过POST发送文件的编码类型。很简单,没有这种编码,文件无法通过POST发送。如果要允许用户通过表单上载文件,则必须使用此enctype。

慕标5832272

提交表单时,您告诉浏览器通过HTTP协议发送网络上的消息,该消息正确地包含在TCP / IP协议消息结构中。HTML页面有一种向服务器发送数据的方法:使用<form>s。提交表单时,如果创建了HTTP请求并将其发送到服务器,则该消息将包含表单中的字段名称和用户填写的值。这种传输可以发生POST或GET&nbsp;HTTP方法。POST&nbsp;告诉您的浏览器构建一条HTTP消息并将所有内容放在消息正文中(一种非常有用的方式,更安全,更灵活)。GET将在查询字符串中提交表单数据。它对数据表示和长度有一些限制。说明如何将表单发送到服务器属性enctype只有在使用POST方法时才有意义。指定后,它会指示浏览器通过以特定方式对其内容进行编码来发送表单。来自MDN - 表格enctype:当method属性的值为post时,enctype是用于将表单提交给服务器的MIME内容类型。application/x-www-form-urlencoded:这是默认值。发送表单时,将收集所有名称和值,并对最终字符串执行URL编码。multipart/form-data:字符不编码。当表单具有文件上载控件时,这很重要。您希望发送文件二进制文件,这可确保不改变比特流。text/plain:空格被转换,但不再执行编码。安全提交表单时,可能会出现一些安全问题,如RFC 7578第7节:多部分表单数据中所述 - 安全注意事项:所有表单处理软件都应该灵敏地处理用户提供的表单数据,因为它通常包含机密或个人识别信息。在Web浏览器中广泛使用表单“自动填充”功能;&nbsp;这些可能用于欺骗用户在完成其他无害任务时不知不觉地发送机密信息。multipart / form-data不提供任何检查完整性,确保机密性,避免用户混淆或其他安全功能的功能;&nbsp;这些问题必须通过表格填写和表格数据解释应用程序来解决。接收表单并处理表单的应用程序必须小心,不要将数据提供回不打算发送的请求表单处理站点。在解释Content-&nbsp;Disposition头字段的文件名时,重要的是不要无意中覆盖收件人文件空间中的文件。如果您是开发人员,并且您的服务器将处理用户提交的表单(可能最终包含敏感信息),则会引起您的注意。
打开App,查看更多内容
随时随地看视频慕课网APP