req.file 객체는 다음과 같이 생겼습니다.

    { 
      fieldname: 'img',
      originalname: 'nodejs.png',
      encoding: '7bit',
      mimetype: 'image/png',
      destination: 'uploads/',
      filename: 'nodejs1514197844339.png',
      path: 'uploads\nodejs1514197844339.png',
      size: 53357
    }

    여러 파일을 업로드하는 경우 HTML의 input 태그에는 multiple을 쓰면 됩니다.

    multipart.html

    <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>

    미들웨어는 single 대신 array로 교체합니다.

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

    업로드 결과도 req.file 대신 req.files 배열에 들어 있습니다.

    파일을 여러 개 업로드하지만 input 태그나 폼 데이터의 키가 다른 경우에는 fields 미들웨어를 사용합니다.

    multipart.html

    <form id="form" action="/upload" method="post" enctype="multipart/form-data">
      <input type="file" name="image1" />
      <input type="file" name="image2" />
      <input type="text" name="title" />
      <button type="submit">업로드</button>
    </form>
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.