maxTotalFileSize function
Creates a validator for BloomFileField that fails when the combined size of all files exceeds maxBytes.
Returns message (or 'Total file size exceeds $maxBytes bytes.' by default).
final galleryField = BloomFileField(
multiple: true,
validators: [maxTotalFileSize(10 * 1024 * 1024, 'Total upload cannot exceed 10MB.')],
);
Implementation
String? Function(List<BloomFile>) maxTotalFileSize(int maxBytes,
[String? message]) =>
(files) {
final total = files.fold<int>(0, (sum, f) => sum + f.size);
return total > maxBytes
? (message ?? 'Total file size exceeds $maxBytes bytes.')
: null;
};