File Upload
Dotpress includes built-in support for file uploads, with automatic validation of file size, MIME type, and extensions.
1. Install multer
We use the popular express library Multer for handling files.
npm i multer
2. Declare accepted files in your route handler
defineRoute({
method: 'post',
path: '/profile/upload',
files: {
avatar: {
maxSize: 5 * 1024 * 1024, // 5MB
mimeTypes: ['image/jpeg', 'image/png'],
extensions: ['.jpg', '.jpeg', '.png']
}
},
handler: async ({ getFile }) => {
// Use the getFile helper to access uploaded file object
const avatarFile = getFile('avatar');
return { fileName: avatarFile?.originalname };
}
});
Note that the 3 validation properties maxSize
, mimeTypes
and extensions
are optional. However, we strongly recommend always validating the file size as well as the extension or MIME type.
If validation fails, the application will return a 400 Bad Request response.