filePattern static method
Validates file type/pattern.
Implementation
static String? filePattern(String? fileName, String pattern, {String? message}) {
if (fileName == null || fileName.isEmpty) return null;
// Pattern can be comma-separated extensions: ".pdf,.doc,.docx"
// or mime types: "application/pdf,application/msword"
final patterns = pattern.split(',').map((p) => p.trim()).toList();
final extension = fileName.contains('.') ? '.${fileName.split('.').last.toLowerCase()}' : '';
// Check if any pattern matches
final matches = patterns.any((p) {
if (p.startsWith('.')) {
// Extension match
return extension == p.toLowerCase();
} else if (p.contains('/')) {
// MIME type match (would need actual file MIME type)
// For now, just check common extensions
return _matchesMimeType(extension, p);
}
return false;
});
if (!matches) {
return message ?? 'File type not allowed. Allowed types: $pattern';
}
return null;
}