uploadFile method

Future<ApiResponse> uploadFile()

Implementation

Future<ApiResponse> uploadFile() async {
  if (_files == null || _files!.isEmpty) {
    throw Exception("files is null or empty");
  }
  if (_paramMap == null || _paramMap!.isEmpty) {
    throw Exception("_paramMap is null or empty");
  }
  var multipartFiles = _files!.map((file) {
    return MapEntry(
      "files",
      MultipartFile.fromFileSync(file.path),
    );
  }).toList();

  FormData voiceData = FormData.fromMap(_paramMap!);

  voiceData.files.addAll(multipartFiles);

  final Response response = await _dio!.request(_url,
      data: voiceData,
      cancelToken: _cancelToken, onSendProgress: (int sent, int total) {
    // print("$sent $total");
  },
      options: Options(
          method: 'POST',
          headers: _headerMap,
          responseType: _responseType ?? ResponseType.plain,
          contentType: "multipart/form-data",
          followRedirects: true));
  clearParams();
  return ApiResponse(response);
}