You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome浏览器input的accept属性限制doc、docx文件失效问题求助

问题原因
  • Chrome 83及后续版本调整了<input type="file">的accept属性匹配逻辑,仅填写MIME类型时,浏览器会优先匹配设备系统中注册的文件MIME标识,部分Windows/macOS设备上未正确注册.docx对应的application/vnd.openxmlformats-officedocument.wordprocessingml.document MIME类型,就会导致过滤限制失效
  • 旧版Chrome的匹配逻辑是直接校验文件后缀和MIME的预设对应关系,不依赖系统注册值,所以早前版本可以正常生效;Firefox目前仍沿用旧的匹配逻辑,所以不受影响
解决方案
  • 方案1:在accept属性中同时补充对应的文件后缀名,兼容两种匹配逻辑,修改后的代码如下:
<input type="file" multiple="multiple" accept="application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,.doc,.docx" />

该方案兼容性最好,所有主流浏览器都支持,同时覆盖了依赖MIME和依赖后缀的两种匹配逻辑,无需额外编写JS代码。

  • 方案2:前端新增提交前的文件后缀校验作为兜底,避免用户绕过过滤规则上传不符合要求的文件,示例校验代码如下:
function isValidWordFile(file) {
  const allowedSuffix = ['doc', 'docx']
  const fileSuffix = file.name.split('.').pop().toLowerCase()
  return allowedSuffix.includes(fileSuffix)
}
// 在文件选择回调、表单提交触发时调用上述方法校验即可

内容的提问来源于stack exchange,提问作者ZebraK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:36:03