upload method

Future<int> upload()

Implementation

Future<int> upload() async {
  if (uploaded.isCompleted) return 200;

  final re = await Request('GET', urlFile(name)).send();
  if (re.statusCode == 200 || re.statusCode == 204) {
    uploaded.complete();
    return 200;
  }

  if (uploader != null) {
    final serverPath = await uploader!(this);
    if (serverPath != null) uploaded.complete();
    return 200;
  }

  var url = Uri.parse(
    "$http/upload",
  );

  // Create a MultipartRequest object to hold the file data
  var request = MultipartRequest('POST', url);

  request.files.add(MultipartFile.fromBytes(
    'file',
    bytes,
  ));

  try {
    final re = await request.send();
    //var responseBody = await response.stream.bytesToString();

    if (re.statusCode == 200) uploaded.complete();

    return re.statusCode;
  } catch (e) {
    print('failed to upload $name');
  }
  return 0;
}