uploadFile method

Future<Map<String, dynamic>> uploadFile(
  1. String endpoint, {
  2. required File file,
  3. String? fileKey = 'file',
  4. Map<String, dynamic>? additionalData,
})

Multipart (File Upload) request

Implementation

Future<Map<String, dynamic>> uploadFile(
  String endpoint, {
  required File file,
  String? fileKey = 'file', // The key to use for the file field
  Map<String, dynamic>?
      additionalData, // Any additional data to send with the file
}) async {
  try {
    FormData formData = FormData.fromMap({
      fileKey!: await MultipartFile.fromFile(file.path,
          filename: file.path.split('/').last),
      if (additionalData != null) ...additionalData,
      // Include additional data if provided
    });

    final response = await _apiClient.client.post(endpoint, data: formData);
    return response.data;
  } catch (e) {
    print('Error in Multipart request: $e');
    return {};
  }
}