Trung BìnhNestJS iconNestJS

File upload trong NestJS với Multer — upload single, multiple file và validate?

NestJS tích hợp Multer qua @nestjs/platform-express để xử lý multipart/form-data. Không cần install thêm gì với Express adapter.

Upload single file: dùng @UseInterceptors(FileInterceptor('fieldName', options))@UploadedFile() decorator. Options quan trọng: storagediskStorage() lưu disk hoặc memoryStorage() lưu buffer (dùng khi upload S3), fileFilter để reject file không hợp lệ, limits.fileSize giới hạn kích thước.

Upload multiple files: FilesInterceptor('fieldName', maxCount) với @UploadedFiles(). ParseFilePipe với validators MaxFileSizeValidatorFileTypeValidator là cách clean nhất để validate. Upload S3: dùng memoryStorage() để lấy file.buffer, gọi AWS SDK s3.putObject() với buffer và file.mimetype. Luôn generate tên file ngẫu nhiên để tránh xung đột và directory traversal.

Xem toàn bộ NestJS cùng filter theo level & chủ đề con.

Mở danh sách NestJS