我正在编写一个节点应用程序,并且正在寻找要在服务器上上传文件的内容。当只有一个静态目录时,我可以上传文件。但我需要为每个用户创建目录,然后根据登录的用户将文件上传到这些目录。我查看了一些内容,但是我尝试的所有内容都以错误结尾:ENOENT:没有这样的文件或目录,打开...错误。我试图目前做的就是这一点 -multer:动态目标路径
let storage = multer.diskStorage({
destination: function(req, file, cb) {
let dest = path.join(__dirname, './documents', 'somenameigetfromtheuser');
let stat = null;
try {
stat = fs.statSync(dest);
}
catch (err) {
fs.mkdirSync(dest);
}
if (stat && !stat.isDirectory()) {
throw new Error('Directory cannot be created');
}
cb(null, dest);
}
});
let upload = multer({
storage: storage,
dest: 'documents/'
});
app.post('/testUpload', upload.single('testfile'), (req, res) => {
res.json({
test: 'test'
})
});
有已经回答了similar question而是因为我想从请求对象的目录名称不为我工作的方式。
当我在multer初始化中删除存储属性时,文件以随机名称存储在文档目录中。我希望文件有它的原始名称,我希望它被存储在一个目录中,我从req对象中获得目录的名称。
帮兄弟出来,谢谢!在公共目录
1.Store文件第一,喜欢的/ tmp /:
见编辑答案(这对我行得通)。 –