I want to validate the mimetype of file at Nest.js. But i can't.
@UseInterceptors(FileInterceptor('image'))
@Post('upload_profile_photo')
async uploadProfilePhoto(@UploadedFile() image: UploadImageDto) {
return image;
}
UploadImageDto.ts
import { IsImageFile } from '../validators/IsImageFile';
export class UploadImageDto {
@Validate(IsImageFile)
mimetype: string;
}
IsImageFile.ts
@ValidatorConstraint({ async: false, name: 'image' })
export class IsImageFile implements ValidatorConstraintInterface {
validate(mimeType: string, args: ValidationArguments) {
// nothing is written on the console
console.log(mimeType);
const acceptMimeTypes = ['image/png', 'image/jpeg'];
const fileType = acceptMimeTypes.find((type) => type === mimeType);
if (!fileType) return false;
return true;
}
defaultMessage(validationArguments?: ValidationArguments): string {
return 'The file type was not accepted.';
}
}
My custom decorator doesn't execute. Anyone help me?