uploadFile method
Implementation
Future<dynamic> uploadFile(String filePath, Map<String, dynamic> form) async {
try {
var dio = di.Dio();
dio.options.baseUrl = pluginConfig.atlasUrl;
dio.options.connectTimeout = const Duration(seconds: 35000);
dio.options.receiveTimeout = const Duration(seconds: 35000);
dio.options.headers = await _getHeader();
final mimeTypeData =
lookupMimeType(filePath, headerBytes: [0xFF, 0xD8])?.split('/');
return dio
.post(key,
data: di.FormData.fromMap({
...form,
'image': await di.MultipartFile.fromFile(filePath,
contentType: MediaType(mimeTypeData![0], mimeTypeData[1])),
}),
options: di.Options(
validateStatus: (_) => true,
method: "POST",
responseType: di.ResponseType.plain),
onSendProgress: (int sent, int total) {})
.then((response) {
if (response.statusCode == 200) {
return convert.jsonDecode(response.data.toString());
}
return convert.jsonDecode(response.data.toString());
});
} catch (ex) {
return "failed";
}
}