fileUploadRules static method
Quick method to validate file uploads
Implementation
static Map<String, String> fileUploadRules({
bool required = true,
bool nullable = false,
List<String> allowedMimes = const [],
int? maxSizeKB,
bool multiple = false,
}) {
final rules = <String>[];
if (nullable) rules.add('nullable');
if (required && !nullable) rules.add('required');
if (multiple) {
rules.add('array');
final itemRules = <String>['file'];
if (allowedMimes.isNotEmpty) {
itemRules.add('mimes:${allowedMimes.join(',')}');
}
if (maxSizeKB != null) {
itemRules.add('max:$maxSizeKB');
}
return {
'attachments': rules.join('|'),
'attachments.*': itemRules.join('|'),
};
} else {
rules.add('file');
if (allowedMimes.isNotEmpty) {
rules.add('mimes:${allowedMimes.join(',')}');
}
if (maxSizeKB != null) {
rules.add('max:$maxSizeKB');
}
return {'attachment': rules.join('|')};
}
}