MulterError: Unexpected field

Wonhee Rhyu·2023년 7월 18일

MulterError: Unexpected field

code: 'LIMIT_UNEXPECTED_FILE',
storageErrors: []

multer 사용 시ㅏ input태그의 name이나 FormData의 key값과 multer의 인자가 일치하지 않아 발생하는 에러이다.


// (1)
<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="image"/>
  <input type="text" name="title"/>
  <button type="submit">업로드</button>
</form>


const multerr = require('multer')
const upload = multer({
  storage: multer.diskStorage({
    done(null, 'uploads/');
  },
  filename(req, file, done){
   	const ext = path.extname(file.originalname);
 	done(null, path.basename(file.originalname, ext) + Date.now() + ext);
  }
}),
limits: { fileSize: 5 * 1024 * 1024 }.
})

// (2)
app.post('/upload', upload.single('image'), (req, res) => {
  console.log(req.file, req.body);
  res.send('ok');
});

(1)의 input태그의 name이 'image'이니, (2)의 upload.single의 인자도 'image'여야 함

여러개의 input태그를 사용 시 single대신 upload.fields([{name:'image1'}. {name: 'image2'}])의 모양으로 사용

profile
공부하면서 어려웠던 것들 정리

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

유익한 글 잘 봤습니다, 감사합니다.

답글 달기