Skip to content

Latest commit

 

History

History
38 lines (31 loc) · 1.32 KB

multipart-upload.md

File metadata and controls

38 lines (31 loc) · 1.32 KB

멀티파트 업로드

  • express에서 multiparty를 미들웨어로 사용하기 위해 multiparty-express를 사용했다
  • post 메서드로 bodyform-data에 파일을 업로드하면 req.files에서 받아볼 수 있다
  • form-datafile이란 이름으로 파일을 업로드하면 다음과 같이 req.files를 찍어볼 수 있다
{
  file: [
    {
      fieldName: 'file',
      originalFilename: '전남도청 API.postman_collection.json',
      path: '/var/folders/rd/3chs9m2n68q_4lnf9cmmrky00000gn/T/DfD9IAb6sfPuZX9h0xj8FsJu.json',
      headers: [Object],
      size: 2199
    }
  ]
}
  • post 요청시 같이 보낸 파일은 req.files.file[i].path에 저장이 된다
  • multiparty-express에서 cleanup 함수를 꺼내서 사용하면 임시 폴더에 저장된 파일을 지울 수 있다는데 정상동작하지 않는 것 같다
  • multiparty를 사용하면서 콜백이 보기싫을때는 wrapper를 하나 만들어 다음과 같이 사용할 수 있다
const promiseMultiparty = (req: Request): any =>
   new Promise((resolve, reject) => {
     const form = new multiparty.Form()

     form.parse(req, (err, fields, files) => {
       if (err) return reject(err)

       return resolve([fields, files])
     })
   })

await promiseMultiparty()