formenctype 属性仅对 type="submit" 或 type="image" 的按钮生效,覆盖表单 enctype 设置,合法值为 application/x-www-form-urlencoded、multipart/form-data、text/plain(区分大小写),且 file input 必须配合 multipart/form-data 才能上传文件。

formenctype 属性只对 type="submit" 或 type="image" 的按钮生效
不是所有按钮都能触发 formenctype。只有显式声明为提交行为的控件才支持该属性——<button type="submit"></button>、<input type="submit"> 和 <input type="image">。如果写成 type="button" 或省略 type(此时默认是 button),点击后不会触发表单提交,formenctype 完全被忽略。
常见错误现象:给普通按钮加了 formenctype="multipart/form-data" 却发现请求仍是 application/x-www-form-urlencoded,根本原因就是没设 type="submit"。
- 务必检查按钮的
type属性是否为submit或image -
formenctype是表单级覆盖,它会覆盖<form enctype></form>的全局设置 - 多个提交按钮可各自指定不同值,浏览器只按实际点击的那个生效
支持的值只有三个,且区分大小写
formenctype 只接受以下三个合法值(必须完全匹配,包括大小写和斜杠):
-
application/x-www-form-urlencoded(默认,不传文件时用) -
multipart/form-data(上传文件必需,注意form-data中间有短横线) -
text/plain(调试用,字段值不编码空格变+,换行保留,但服务端很少处理)
写成 multipart/formdata、MULTIPART/FORM-DATA 或漏掉 text/plain 的引号,在 HTML 解析时不会报错,但浏览器会静默降级为默认编码,导致文件上传失败或字段乱码。
立即学习“前端免费学习笔记(深入)”;
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。


















