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

使用multer上传图片时出现ENOENT文件目录不存在错误求助

解决Multer上传图片的ENOENT错误

问题原因分析

你遇到的错误有两个核心原因:

  1. uploads目录不存在:Multer不会自动创建存储文件的目录,如果./uploads/目录没手动创建,就会触发找不到目录的错误。
  2. 文件名包含非法字符:Windows系统下文件名不允许出现冒号(:),而new Date().toISOString()生成的时间格式里带有冒号(比如2022-11-29T17:23:07.574Z),拼接成文件名后会导致路径无效。

解决方案

1. 修改代码解决目录与文件名问题

在代码里加入文件系统模块逻辑确保目录存在,同时替换文件名里的非法字符:

const multer = require("multer");
const fs = require("fs");

// 自动创建uploads目录,recursive: true支持递归创建父级目录
fs.mkdirSync('./uploads/', { recursive: true });

const storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, './uploads/')
    },
    filename: function (req, file, cb) {
        // 把ISO时间里的冒号替换成横杠,避免Windows文件名非法字符
        const safeFilename = new Date().toISOString().replace(/:/g, '-') + file.originalname;
        cb(null, safeFilename);
    }
});
const upload = multer({storage: storage});

2. 验证操作

  • 重启你的Node.js服务器,让新的目录创建逻辑生效。
  • 在Postman中重新发起上传请求,此时图片应该能正常保存到uploads目录中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:26:28