개발/NestJs
8. 첨부파일
희묭
2023. 10. 20. 11:48
8. 첨부파일
1) 설치
yarn add @types/multer
2) 활용
multer옵션파일 생성
import { existsSync, mkdirSync } from 'fs';
import * as multer from 'multer';
import { extname } from 'path';
export const multerOptions = {
// fileFilter: (request, file, callback) => {
// if (file.mimetype.match(/\/(jpg|jpeg|png)$/)) {
// // 이미지 형식은 jpg, jpeg, png만 허용합니다.
// callback(null, true);
// }
// },
storage: multer.diskStorage({
destination: (request, file, callback) => {
const uploadPath = 'uploads';
if (!existsSync(uploadPath)) {
// uploads 폴더가 존재하지 않을시, 생성합니다.
mkdirSync(uploadPath);
}
callback(null, uploadPath);
},
filename: (request, file, callback) => {
//파일 이름 설정
callback(null, `${Date.now()}${extname(file.originalname)}`);
},
}),
};
인터셉터에 옵션적용
@Post('upload')
@UseInterceptors(FileInterceptor('file', multerOptions))
uploadFile(@UploadedFile() file: Express.Multer.File) {
console.log(file);
}