uploadMultiple<T> method
Future<T?>
uploadMultiple<T>(
- String url, {
- required Map<
String, String> files, - Map<
String, dynamic> ? additionalFields, - ProgressCallback? onProgress,
- CancelToken? cancelToken,
inherited
Upload multiple files using multipart/form-data.
url - The endpoint to upload files to.
files - Map of field names to file paths.
additionalFields - Optional additional form fields to include.
onProgress - Optional callback for upload progress.
Example:
final result = await api.uploadMultiple<UploadResponse>(
'/upload',
files: {
'avatar': '/path/to/avatar.jpg',
'document': '/path/to/doc.pdf',
},
additionalFields: {'userId': '123'},
);
Implementation
Future<T?> uploadMultiple<T>(
String url, {
required Map<String, String> files,
Map<String, dynamic>? additionalFields,
ProgressCallback? onProgress,
CancelToken? cancelToken,
}) async {
final Map<String, dynamic> formMap = {...?additionalFields};
for (final entry in files.entries) {
formMap[entry.key] = await MultipartFile.fromFile(entry.value);
}
final formData = FormData.fromMap(formMap);
return await network<T>(
request: (request) => request.postUri(
Uri.parse(url),
data: formData,
cancelToken: cancelToken,
onSendProgress: onProgress,
),
);
}