uploadSingleFile method

Future<String> uploadSingleFile({
  1. required String url,
  2. required String filePath,
  3. String fileKey = 'file',
  4. Map<String, dynamic>? formData,
  5. Map<String, dynamic>? headers,
  6. bool useWithoutToken = false,
  7. CancelToken? cancelToken,
  8. void onSendProgress(
    1. int,
    2. int
    )?,
})

Implementation

Future<String> uploadSingleFile({
  required String url,
  required String filePath,
  String fileKey = 'file',
  Map<String, dynamic>? formData,
  Map<String, dynamic>? headers,
  bool useWithoutToken = false,
  CancelToken? cancelToken,
  void Function(int, int)? onSendProgress,
}) async {
  try {
    final formDataMap = FormData.fromMap({
      ...?formData,
      fileKey: await MultipartFile.fromFile(filePath),
    });

    final response = await _dio.post(
      url,
      data: formDataMap,
      options: Options(
        headers: headers,
        extra: {'useWithoutToken': useWithoutToken},
      ),
      cancelToken: cancelToken,
      onSendProgress: onSendProgress,
    );

    return response.data['path'] ?? response.data['url'];
  } on DioException catch (e) {
    throw _handleDioError(e);
  }
}