Javascript Multer在上载文件时抛出错误

Javascript Multer在上载文件时抛出错误,javascript,reactjs,multer,Javascript,Reactjs,Multer,当我在multer中没有连接new Date().toISOString和file.originalname来上传文件时,它就可以完美地工作了。上传文件。但如果我连接起来创建唯一的文件名,它会说 Error: ENOENT: no such file or directory, open 'rootDirectory\uploads\2020-10-22T13:28:21.741Zman2.jpg' 即使我尝试存储从new Date().toISOString和file.originalnam

当我在multer中没有连接new Date().toISOString和file.originalname来上传文件时,它就可以完美地工作了。上传文件。但如果我连接起来创建唯一的文件名,它会说

Error: ENOENT: no such file or directory, open 'rootDirectory\uploads\2020-10-22T13:28:21.741Zman2.jpg'
即使我尝试存储从new Date().toISOString和file.originalname返回的值,并将它们连接起来并传递给回调函数,它也会抛出相同的错误

如何解决这个问题

const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, "./uploads");
  },
  filename: function f(req, file, cb) {
    // const originalname = file.originalname;
    // const date = new Date().toISOString();
    cb(null, new Date().toISOString() + file.originalname);
  },
});
像这样试试

cb(null,Date.now()+'-'+file.originalname.replace(/\s+/g,”)

如果有帮助的话,这里有一个完整的方法

var storage=multer.diskStorage({
目标:功能(请求、文件、cb){
cb(空,“/上传”)
},
文件名:函数(请求、文件、cb){
cb(null,Date.now()+'-'+file.originalname.replace(/\s+/g,“”))
},
})

是的,在删除空间后,这项功能仍然有效,但我想知道,上面代码中指定的路径中没有空间,为什么它仍然不起作用您的保存方法有两个问题,首先,保存文件时最好不要使用“:”(冒号)和“.”(句点),这是由new Date()生成的。toISOString()生成的,第二,如果在某些情况下,系统将空格字符附加到文件名,那么我们将删除空格,因此这只是一个双重检查,以确保输出的可预测性