📜  HTML | enctype 属性(1)

📅  最后修改于: 2023-12-03 15:31:14.956000             🧑  作者: Mango

HTML | enctype 属性

在HTML中,enctype属性用于指定当提交表单数据时,浏览器如何对表单数据进行编码。常见的编码方式有application/x-www-form-urlencoded(默认值)、multipart/form-datatext/plain

application/x-www-form-urlencoded

application/x-www-form-urlencoded是最常用的表单数据编码方式,也是默认的编码方式。在这种编码方式下,表单数据会被编码成一个URL编码的字符串,格式如下:

name1=value1&name2=value2

其中name1name2是表单控件的名称,value1value2是对应控件的值。如果值里面包含特殊字符,例如空格、加号、等号等,则需要进行URL编码。

<form action="submit.php" method="post" enctype="application/x-www-form-urlencoded">
  <label for="name">Name:</label><input type="text" name="name" id="name"><br>
  <label for="email">Email:</label><input type="email" name="email" id="email"><br>
  <input type="submit" value="submit">
</form>
multipart/form-data

multipart/form-data编码方式通常用于上传文件或二进制数据。在这种编码方式下,表单数据会被编码成一系列的消息体,每个消息体就是一个表单字段及其对应的值。每个消息体都有一个唯一的标识符(boundary),消息体之间用这个标识符隔开。

<form action="upload.php" method="post" enctype="multipart/form-data">
  <label for="file">File:</label><input type="file" name="file" id="file"><br>
  <input type="submit" value="upload">
</form>
text/plain

text/plain编码方式是一种最简单的纯文本方式,它不对表单数据进行任何编码,直接将文本数据发送给服务器。这种编码方式一般用于调试或演示目的。

<form action="submit.php" method="post" enctype="text/plain">
  <label for="name">Name:</label><input type="text" name="name" id="name"><br>
  <label for="email">Email:</label><input type="email" name="email" id="email"><br>
  <input type="submit" value="submit">
</form>

需要注意的是,在使用multipart/form-data编码方式时,表单数据是以二进制格式发送到服务器的,因此不能使用$_POST来获取表单数据,而需要使用$_FILES来获取上传的文件。