File Uploads
Nubie supports elegant file uploads through its @FileUpload()
decorator, enabling both simple and advanced handling via middleware injection.
Decorator Overview
@FileUpload()
is a method-level decorator that attaches middleware to a route to handle file uploads of different types: single file, multiple files, or field-based grouping.
Import
import { FileUpload, FileUploadType } from "nubie";
Syntax & Options
@FileUpload(field, uploadType?, maxCount?)
Parameter | Type | Required | Description |
---|---|---|---|
field | string | TUploadFields | ✅ | Field name or list of fields |
uploadType | FileUploadType | ❌ | Type of upload (defaults to Single ) |
maxCount | number | ❌ | Only for Multiple type. Default: 2 |
Upload Types
The decorator supports three file upload modes:
Type | Enum Value | Description |
---|---|---|
Single | FileUploadType.Single | Upload one file using a single field name |
Multiple | FileUploadType.Multiple | Upload multiple files with one field name |
Fields | FileUploadType.Fields | Upload files mapped to multiple fields |
Examples
Single File Upload
@FileUpload("avatar", FileUploadType.Single)
@Post("/profile")
updateProfile(@File() file: any) {
}
Multiple File Upload
@FileUpload("photos", FileUploadType.Multiple, 5)
@Post("/album")
uploadPhotos(@Files() files: any) {
}
Field-Based Uploads
@FileUpload([
{ name: "resume", maxCount: 1 },
{ name: "certificates", maxCount: 3 }
])
@Post("/job/apply")
applyForJob(@Files() files: any) {
}
Notes
- The default
maxCount
for multiple uploads is2
if not specified.