HTML enctype 属性

HTML enctype 语法

在 HTML 中,enctype 属性用于定义表单数据在提交到服务器时的编码方式。它只能应用于 form 元素。

语法:

<form enctype="编码类型">
</form>

说明:

enctype 属性决定了表单数据如何在提交时进行编码。根据编码方式的不同,表单数据会以不同的格式发送到服务器。

enctype 属性取值有以下 3 种。

  • application/x-www-form-urlencoded(默认值):表示在发送前对所有字符进行编码(空格会转换为 “+” 符号,特殊字符会转换为十六进制 ASCII 值)。这种方式适用于发送简单的文本数据,如用户名、密码等,但不适合用于上传文件。
  • multipart/form-data:表示不对字符进行编码。在表单包含文件上传 <input type="file"> 元素时,必须使用此值。它表示将表单数据分割成多个部分,每个文件或字段都是一个独立的部分。
  • text/plain:表示将空格转换为 “+” 符号,但不编码特殊字符。它不适合大多数实际的表单提交,因此该值主要用于调试目的,并且也不推荐在生产环境中使用。

注意: enctype 属性仅在 form 元素的 method="post" 时有效。如果 method 为 "get",则浏览器会忽略 enctype 属性,而始终使用默认的 "application/x-www-form-urlencoded" 编码。

HTML enctype 摘要

适用元素 form
使用频率
兼容性 查看
官方文档 查看
MDN 查看

HTML enctype 示例

接下来,我们通过几个简单的例子来讲解一下 HTML enctype 属性是如何使用的。

示例 1:enctype 属性使用默认值

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form action="/index.php" method="post">
        <p>
            <label>
                用户名:
                <input type="text" name="username">
            </label>
        </p>
        <p>
            <label>
                评论:
                <textarea name="comment"></textarea>
            </label>
        </p>
        <p>
            <button type="submit">提交</button>
        </p>
    </form>
</body>
</html>

页面效果如下图所示。

enctype 属性使用默认值

分析:

在这个例子中,我们并没有给 form 标签设置 enctype 属性,因此它会使用默认值 "application/x-www-form-urlencoded"。

当我们提交表单时,所有文本字段的数据都会被编码成 “key=value&key2=value2” 的形式,并发送到服务器。例如,如果用户名是 "Jack",评论是 "Hello China!",那么发送的数据可能类似下面这样的字符串:

username=Jack&comment=Hello+China%21

示例 2:enctype 属性用于文件上传

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <p>
            <label>
                选择照片:
                <input type="file" name="photo">
            </label>
        </p>
        <p>
            <label>
                文件描述:
                <textarea name="description"></textarea>
            </label>
        </p>
        <p>
            <button type="submit">上传文件</button>
        </p>
    </form>
</body>
</html>

页面效果如下图所示。

enctype 属性用于文件上传

分析:

在这个例子中,我们将 enctype 属性的值设置为 "multipart/form-data"。这样能够使得浏览器能够正确处理文件上传,将文件数据作为二进制流的一部分发送,同时也能发送其他表单字段(如 “description”)。如果缺少 enctype="multipart/form-data",文件将无法被正确上传到服务器。

上一篇: placeholder

下一篇: checked

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号