HTML 表单主要包含两种编码方式:URL 编码表单 和 Multipart 表单。HTML 表单的编码方式由一个名为 ‘enctype‘ 的属性决定。该属性可以取以下三个值:
描述
—
表示 URL 编码表单。这是发送表单数据时的默认 enctype。
表示 Multipart 表单。用于用户上传文件。
表示 HTML5 中引入的表单类型,用于发送未经任何编码的数据,保留空格。## URL 编码表单:
URL 编码是将字符串转换为有效 URL 格式的过程。正如其名,使用这种表单编码提交的数据都会经过 URL 编码。
示例: 本示例演示了如何在 HTML 文档中使用 URL 编码表单。
URL Encoded Forms
输出:
上面的表单通过 POST 请求提交给服务器,这意味着它包含一个请求体,且该请求体是 URL 编码的。它是由一串扩展的 (name, value) 对组成的。每一对字符串之间用 & 符号分隔,name 和 value 之间用 = 号分隔。
对于上面的表单,其 (name, value) 对如下所示。
username=GeeksforGeeks&password=GFG@123
在 URL action 中传递的一些查询参数如下。
/urlencoded?firstname=Geeks&lastname=forGeeks
可以清楚地看到,URL 编码的请求体和查询参数看起来非常相似。事实上,它们就是一样的。
Multipart 表单:
这种表单主要用于用户需要将文件上传到服务器的场景。要将上面的表单转换为 Multipart 表单,我们要做的就是将表单标签的 INLINECODE7e8a19bb 属性从 INLINECODEd398671a 更改为 multipart/form-data。
示例: 本示例演示了如何在 HTML 文档中使用 Multipart 表单。
Multipart Forms
输出:
在上面的表单中,我们在 username 的值中加入了一些空格,并将表单的 action 值更改为 ‘multipart/form-data‘ 以使用 Multipart 表单的功能。
对于上面的表单,其 (name, value) 对如下所示:
username=Geeks%20for%20Geeks&password=GFG@123
在 URL action 中传递的一些查询参数如下。
/multipart?firstname=Geeks%20for%20&lastname=Geeks
从上面的查询参数和表单主体中可以清楚地看到,空格被替换为了 ‘%20‘。