MulterError:unexpected field

Wonhee Rhyu·2023년 7월 18일

MulterError:unexpected field 에러가 발생하는 원인은

multer 미들웨어를 사용할 때

input태그의 name과 multer의 single / fields의 인자가 일치하지 않아서 발생.

  1. 이미지가 한 장일 경우
<form id="form" action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="image" />
  <input type="text" name="title"/>
  <button type="submit">업로드</button>
</form>


app.post('/upload',
  upload.single('image'), (req, res) => {
  console.log(req.file);
  res.send('ok');
});
  1. 여러개를 업로드 하는 경우. 미들웨어에서는 single 대신 array로 교체
<form id="form" action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="many" multiple />
  <input type="text" name="title"/>
  <button type="submit">업로드</button>
</form>

app.post('/upload',
  upload.array('many'), (req, res) => {
  console.log(req.file);
  res.send('ok');
});

3.여러개의 input태그로 여러 파일을 업로드 하는 경우

<form id="form" action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="image1" />
  <input type="file" name="image2" />
  <input type="file" name="image3" />
  <input type="text" name="title"/>
  <button type="submit">업로드</button>
</form>
app.post('/upload',
  upload.fields([{name: 'image1'}, {name: 'image2'}, {name: 'image3'}]), (req, res) => {
  console.log(req.file);
  res.send('ok');
});

위와 같이 input태그의 name과 미들웨어 내부 single/fields의 인자를 맞춰주면 해결된다.

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

3개의 댓글

comment-user-thumbnail
2023년 7월 18일

소중한 정보 감사드립니다!

답글 달기
comment-user-thumbnail
2023년 7월 18일

정보가 많아서 도움이 많이 됐습니다.

답글 달기
comment-user-thumbnail
2023년 7월 18일

뛰어난 글이네요, 감사합니다.

답글 달기