uploadOss static method

Future<String> uploadOss(
  1. File file, {
  2. String policyApi = "/public/oss/policy",
})

Implementation

static Future<String> uploadOss(File file,
    {String policyApi = "/public/oss/policy"}) async {
  var resp = PolicyModel.fromJson(await DemonHttp().get(policyApi));
  String fileName = resp.dir! +
      const Uuid().v1() +
      (file.path.split('.').last.isEmpty
          ? ""
          : "." + (file.path.split('.').last));
  FormData formData = FormData.fromMap({
    "file": await MultipartFile.fromFile(file.path, filename: fileName),
    "key": fileName,
    "policy": resp.policy,
    "OSSAccessKeyId": resp.accessid,
    "success_action_status": 200,
    "signature": resp.signature
  });

  EasyLoading.show();
  await Dio().post(resp.host!, data: formData).whenComplete(() {
    EasyLoading.dismiss();
  });
  String fullfilename;
  if (resp.host!.endsWith("/")) {
    fullfilename = resp.host! + fileName;
  } else {
    fullfilename = resp.host! + "/" + fileName;
  }
  return fullfilename;
}