uploadMultipleFiles static method

Future<void> uploadMultipleFiles(
  1. List<File> files,
  2. File document
)

Example 2: Upload multiple files using the more flexible approach

Implementation

static Future<void> uploadMultipleFiles(List<File> files, File document) async {
  final environment = createEnvironment();
  final endpoint = GtdEndpoint(env: environment, path: 'upload-multiple');

  // Create a network request with file information
  final request = GTDNetworkRequest(
    type: GtdMethod.post,
    enpoint: endpoint,
    data: {
      'description': 'Multiple files upload',
      'count': files.length + 1, // Total files being uploaded
    },
    files: {
      'images': files, // List of image files
      'document': document, // Single document file
    },
  );

  // Configure the network service
  final networkService = GtdNetworkService.shared;
  networkService.request = request;

  try {
    final response = await networkService.uploadFiles(
      onSendProgress: (int sent, int total) {
        final progress = (sent / total * 100).toStringAsFixed(2);
        print('Multiple files upload progress: $progress%');
      },
    );

    print('Multiple files upload successful: ${response.statusCode}');
    print('Response data: ${response.data}');
  } on DioException catch (e) {
    print('Multiple files upload failed: ${e.message}');
  }
}