accept 属性是 HTML 原生限制文件上传格式的最直接方法,支持 MIME 类型、扩展名及混合写法,适用于单文件和多文件(需配合 multiple),但仅为前端提示,服务端校验必不可少。

可以通过 accept 属性限制文件上传时的可选格式,这是最直接、最常用的 HTML 原生方法。
使用 accept 属性指定允许的文件类型
在 <input type="file"> 中设置 accept 属性,浏览器会自动过滤不匹配的文件(仅限选择时的界面提示,非服务端校验)。
- 按 MIME 类型写:如
accept="image/png,image/jpeg" - 按扩展名写:如
accept=".pdf,.doc,.docx" - 混合写法也支持:如
accept="image/*,.pdf"(表示所有图片 + PDF) - 常见 MIME 示例:
text/csv、application/json、video/mp4
限制单文件还是多文件上传
accept 对单文件和多文件都生效,但需配合 multiple 属性控制是否允许多选:
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 只允许上传一个 PNG:<input type="file" accept=".png" />
- 允许多个 JPG 或 JPEG:<input type="file" accept="image/jpeg" multiple />
- 只允许一个 Excel 文件:<input type="file" accept=".xlsx,.xls" />
注意:accept 不是安全校验
它只是前端提示,用户仍可通过修改网页或绕过界面上传任意文件。真正有效的格式限制必须在服务端验证文件实际类型(如检查文件头、后缀、MIME),不能依赖 accept。
立即学习“前端免费学习笔记(深入)”;
辅助增强体验的小技巧
可在提交前用 JavaScript 检查选中文件的 type 和 name,给出即时反馈:
- 读取
input.files[0].type获取浏览器识别的 MIME 类型 - 用
input.files[0].name.split('.').pop().toLowerCase()提取后缀 - 匹配白名单后才允许提交,否则 alert 或禁用提交按钮


















