首页 > 解决方案 > 尝试通过 multer 的存储保存图像时,为什么我得到“ENOENT:没有这样的文件或目录,打开”?

问题描述

我正在尝试使用 multer 将图像保存到我的后端,更具体地说,保存到public/images/servers文件夹。可悲的是我收到一个错误:

[Error: ENOENT: no such file or directory, open 'C:\MAMP\htdocs\Chat Backend\public\images\servers\2020-08-07T12:33:31.556Z-aohan-chen-.jpg'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'C:\\MAMP\\htdocs\\Chat Backend\\public\\images\\servers\\2020-08-07T12:33:31.556Z-aohan-chen-.jpg',
  storageErrors: []
}

我不确定为什么它说没有这样的文件或目录,而直到这里的所有内容都存在 - 'C:\MAMP\htdocs\Chat Backend\public\images\servers'. 剩下的唯一一件事就是让 multer 将图像保存在服务器文件夹中。

var multer = require('multer');

var storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null, 'public/images/servers')
    },
    filename: (req, file, cb) => {
        cb(null, new Date().toISOString() + '-' + file.originalname)
    }
})

var fileFilter = (req, file, cb) => {
    if (file.mimetype === 'image/png' || file.mimetype === 'image/jpg' || file.mimetype === 'image/jpeg') {
        cb(null, true)
    } else {
        cb(null, false)
    }
}

app.use(multer({ storage: storage, fileFilter: fileFilter }).single('image'));

标签: javascriptnode.jsexpressmulter

解决方案


推荐阅读