uploadNewFile method
Implementation
Future<Map<String, dynamic>> uploadNewFile(
String url,
Map<String, String> bodyMap,
Map<String, String> headers,
Map<String, File> fileMapping) async {
var uri = Uri.parse(url);
var request = http.MultipartRequest(
"POST",
uri,
);
request.headers.addAll(headers);
var keys = bodyMap.keys;
for (var i = 0; i < bodyMap.length; i++) {
var key = keys.elementAt(i);
request.fields[key] = bodyMap[key]!;
}
var fileKeys = fileMapping.keys;
for (var i = 0; i < fileMapping.length; i++) {
var key = fileKeys.elementAt(i);
var fileName = fileMapping[key]!.path.split("/").last;
var fileExtension = fileName.split(".").last;
var multFile = await http.MultipartFile.fromPath(
key, fileMapping[key]!.path,
filename: fileName, contentType: MediaType("image", fileExtension));
request.files.add(multFile);
}
return request
.send()
.then((response) => response.stream.toBytes())
.then((responseData) {
var responseString = String.fromCharCodes(responseData);
//Get the response from the server
var jsonBody = jsonDecode(responseString);
return jsonBody;
});
}