📅  最后修改于: 2023-12-03 15:31:14.956000             🧑  作者: Mango
在HTML中,enctype
属性用于指定当提交表单数据时,浏览器如何对表单数据进行编码。常见的编码方式有application/x-www-form-urlencoded
(默认值)、multipart/form-data
和text/plain
。
application/x-www-form-urlencoded
是最常用的表单数据编码方式,也是默认的编码方式。在这种编码方式下,表单数据会被编码成一个URL编码的字符串,格式如下:
name1=value1&name2=value2
其中name1
和name2
是表单控件的名称,value1
和value2
是对应控件的值。如果值里面包含特殊字符,例如空格、加号、等号等,则需要进行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
编码方式通常用于上传文件或二进制数据。在这种编码方式下,表单数据会被编码成一系列的消息体,每个消息体就是一个表单字段及其对应的值。每个消息体都有一个唯一的标识符(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
编码方式是一种最简单的纯文本方式,它不对表单数据进行任何编码,直接将文本数据发送给服务器。这种编码方式一般用于调试或演示目的。
<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
来获取上传的文件。