Skip to main content

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?)
ParameterTypeRequiredDescription
fieldstring | TUploadFieldsField name or list of fields
uploadTypeFileUploadTypeType of upload (defaults to Single)
maxCountnumberOnly for Multiple type. Default: 2

Upload Types

The decorator supports three file upload modes:

TypeEnum ValueDescription
SingleFileUploadType.SingleUpload one file using a single field name
MultipleFileUploadType.MultipleUpload multiple files with one field name
FieldsFileUploadType.FieldsUpload 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 is 2 if not specified.