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

修改文件上传MIME类型过滤规则,适配PDF、DOC、PPTX格式

代码正确性校验与优化

你的修改思路没问题,但当前代码存在语法错误,同时可以优化写法提升可维护性,具体说明如下:

一、语法问题指出

你的修改后代码(包括原代码)都存在语法错误:if语句后未用大括号包裹执行逻辑,且else的大括号位置错误,会导致JS解析报错。比如if判断完成后直接调用cb(null, true),下一行的}会被识别为多余的闭合括号,引发语法异常。

二、修正并优化后的代码

推荐用数组存储允许的MIME类型,后续添加新格式会更便捷:

const fileFilter = (req, file, cb) => {
  // 允许的办公文档MIME类型,可按需扩展
  const allowedMimeTypes = [
    'application/msword', // .doc
    'application/pdf', // .pdf
    'application/vnd.openxmlformats-officedocument.presentationml.presentation', // .pptx
    'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // .docx(补充支持DOCX)
    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' // .xlsx(可选,如需支持Excel)
  ];

  if (allowedMimeTypes.includes(file.mimetype)) {
    cb(null, true);
  } else {
    cb(null, false);
  }
};

三、额外注意事项

  • 若需要同时保留图片上传支持,只需将图片的MIME类型(image/png、image/jpg、image/jpeg)添加到allowedMimeTypes数组即可。
  • 仅通过MIME类型过滤存在安全风险(MIME可被伪造),生产环境建议结合文件扩展名校验、甚至文件内容头检测来做更严格的验证。

内容的提问来源于stack exchange,提问作者pia punya Munirah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:15:08