maxTotalFileSize function

String? Function(List<BloomFile>) maxTotalFileSize(
  1. int maxBytes, [
  2. String? message
])

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;
    };