노드 응용 프로그램을 쓰고 서버에서 파일을 업로드 할 대상을 찾고있었습니다. 하나의 정적 디렉토리가있을 때 업로드 할 파일을 얻을 수있었습니다. 하지만 로그인 한 사용자에 따라 사용자별로 디렉토리를 만들고 그 파일을 업로드해야합니다. 내가 보았지만 내가 시도한 모든 것이 오류로 끝납니다 : 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 객체에서 디렉토리의 이름을 가져 오는 디렉토리에 저장하려고합니다.
형제, 감사합니다 도와주세요! 내 프로젝트에서
하는 편집 답변을 참조를 저를 위해 작동하는). –