https://docs.nestjs.com/techniques/file-upload
NestJS는 파일 업로드를 위해 Express의 Multer 를 내장 모듈로써 제공한다.
Multer
Multer는 Express 패키지로, HTTP POST 요청으로 들어온 multipart/form-data
형식의 데이터를 다룬다.
설치
Type 설정을 위해 아래 패키지를 설치해준다.
$ npm i -D @types/multer
기본 사용
1) interceptor
FilesInterceptor
를 사용fieldName | form-data의 key값 |
maxCount | 처리할 파일 최대 개수 |
localOptions | 기타 옵션 |
export declare function FilesInterceptor(
fieldName: string,
maxCount?: number,
localOptions?: MulterOption
): Type<NestInterceptor>;
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
// @UseInterceptors(FilesInterceptor('file', 10)) // 여러개의 파일일 경우
2) @UploadedFiles
@UploadedFiles
로 form-data에서 파일 객체 추출uploadFile(@UploadedFile() file: Express.Multer.File) {
...
}
uploadFile(@UploadedFile() files: Express.Multer.File[]) {
...
}