formenctype属性仅作用于type="submit"或type="image"的input,用于覆盖form的enctype,必须满足method="post"且表单含type="file"输入,常用值为multipart/form-data(文件上传)和application/x-www-form-urlencoded(普通文本)。

formenctype 属性用于指定表单提交时,文件上传类 input(type="file") 所用的编码类型,它只在 method="post" 且 enctype 可被覆盖的上下文中生效。注意:它不是直接作用于任意 input,而是仅对触发提交的 submit 类型 input(如 type="submit" 或 type="image")有效,并且仅当该 input 属于一个 <form></form> 时才起作用。
formenctype 的适用前提
这个属性不会单独生效,必须满足以下条件:
- 所属表单的
method必须是post(get 方式忽略 enctype) - 表单中存在
type="file"的 input(否则 multipart/form-data 无意义) - 该属性写在
type="submit"或type="image"的 input 上,而非 file 输入框本身 - 它会**覆盖** form 元素的
enctype属性(如果 form 已设 enctype,则以该 submit 的 formenctype 为准)
常用值及对应场景
可选值有三个,实际常用的是前两个:
-
application/x-www-form-urlencoded:默认值,普通文本提交(不支持文件) -
multipart/form-data:必须使用此值才能上传文件(浏览器自动添加边界标识) -
text/plain:极少用,仅作调试,空格变空格、换行保留,不编码特殊字符
例如,一个带文件上传的表单,默认 enctype 是 urlencoded,但你想让某个提交按钮走文件上传流程,就给它加 formenctype="multipart/form-data"。
立即学习“前端免费学习笔记(深入)”;
代码示例
下面是一个典型用法:
点击第二个按钮时,即使



















