uploadMultipleFiles static method
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}');
}
}