Я пишу приложение-узел, и я искал что-то для загрузки файлов на сервер. Я мог бы загружать файлы, когда был только один статический каталог. Но мне нужно создавать каталоги для каждого пользователя, а затем загружать файлы в них, в соответствии с пользователем, который вошел в систему. Я выглядел, но все, что я делаю, заканчивается ошибкой: ENOENT: нет такого файла или каталога, open ... error , То, что я пытаюсь сделать, в настоящее время это -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, который был дан ответ, но он не работает, что путь для меня, потому что я хочу, чтобы имя каталога из объекта запроса.
Когда я удаляю свойство хранилища в инициализации мультера, файлы хранятся в каталоге документов со случайным именем. Я хочу, чтобы файл имел свое первоначальное имя, и я хочу, чтобы он хранился в каталоге, где я получаю имя каталога из объекта req.
Помогите брату, спасибо!
См отредактированный ответ (это подходит для меня). –