sendFile method

Future sendFile(
  1. String endpoint,
  2. Map<String, String>? fields,
  3. Map<String, String>? files, {
  4. String id = "",
  5. String method = "POST",
})

Implementation

Future sendFile(
    String endpoint, Map<String, String>? fields, Map<String, String>? files,
    {String id = "", String method = "POST"}) async {
  String end = method == "POST" ? '$id' : "$id/";
  var request =
      http.MultipartRequest(method, Uri.parse("$url/$endpoint/$end"));

  files?.forEach((key, value) async {
    request.files.add(await http.MultipartFile.fromPath(key, value));
  });

  request.fields.addAll(fields!);
  request.headers.addAll(this.headers);

  var response = await request.send();
  if (response.statusCode == 200 || response.statusCode == 201) {
    var responseData = await response.stream.toBytes();
    var result = json.decode(utf8.decode(responseData));
    return result;
  } else {
    var responseData = await response.stream.toBytes();
    var responseString = String.fromCharCodes(responseData);
    return responseString;
  }
}