You need to enable JavaScript to run this app. 已配置Multer仍无法将图片存入uploads文件夹,该如何解决相同报错?
优惠活动
大模型
产品
解决方案
定价
更多

已配置Multer仍无法将图片存入uploads文件夹,该如何解决相同报错?

Multer 存储图片至 uploads 文件夹报错排查方案

权限类报错(EACCES: permission denied)

  • 确认运行 Node 服务的用户对 uploads 文件夹具备读写权限。若文件夹是通过 root 权限手动创建,执行权限调整命令:chmod -R 755 ./uploads;Windows 环境可在文件夹属性的「安全」 tab 中,授予当前服务运行用户完全控制权限。
  • 排查 uploads 路径是否落在系统受保护目录下(如 Linux 的 /root 路径、Windows 的 System32 系统目录),受保护目录会禁止非系统进程写入。

路径类报错(ENOENT: no such file or directory)

  • 不要硬编码相对路径配置存储位置,避免 Node 进程工作目录变化导致路径解析错误,推荐使用 path.join(__dirname, 'uploads') 拼接生成绝对路径。
  • 在 Multer 的 diskStorage 配置中新增自动建目录逻辑,无需手动提前创建 uploads 文件夹:
    const fs = require('fs');
    const path = require('path');
    const multer = require('multer');
    const upload = multer({
      storage: multer.diskStorage({
        destination: (req, file, cb) => {
          const uploadDir = path.join(__dirname, 'uploads');
          // 目标目录不存在时递归创建
          if (!fs.existsSync(uploadDir)) fs.mkdirSync(uploadDir, { recursive: true });
          cb(null, uploadDir);
        }
      })
    })
    

接口配置类异常

  • 核对前端上传表单的文件字段名,和 Multer 接口中间件绑定的字段名完全一致,字段名不匹配会直接打断上传流程。
  • 若服务处于反向代理(如 Nginx)后方,检查代理配置的请求体大小限制,超出阈值的大文件上传请求会被代理直接拦截,触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 02:15:05