我正在使用package:http中的MultipartRequest上传文件.我正在成功上载文件,但我想了解正在上载的文件的进度.我怎样才能做到这一点呢?我当前的代码如下所示

Future submitFile(var report, File file) async {
var uri = Uri.parse(endpoint + "v1/reports");
  var request = http.MultipartRequest("POST", uri);
  await addHeaders(request.headers);
  request.fields.addAll(Report.toMap(report));
  if (file != null)
    request.files.add(await http.MultipartFile.fromPath(
      'report_resource',
      file.path,
    ));

  String response = "";
  await (await request.send()).stream.forEach((message) {
    response = response + String.fromCharCodes(message);
  });
  return response;
}

我寻找答案,找到了this个.this post与我想要实现的有些不同,因为他使用不同的客户端来处理请求.

也许我没有在正确的道路上寻找. 感谢您的帮助.

推荐答案

等了一周左右.我没有得到回应.因此,我自己开发了一个插件来实现这种行为.link号Package.

使用它的示例:

var request = MultipartRequest();

request.addFile("image", imagePath);

Response response = request.send();

response.onError = () {
  print("Error");
};

response.onComplete = (response) {
  print(response);
};

//Not 100% success
response.progress.listen((int progress) {
  print("progress from response object " + progress.toString());
});

Update Jun 30, 2020

该软件包现在也支持IOS.

Dart相关问答推荐

从GTIN中提取GS1公司前缀

Dart中的运算符(){…}做什么?

Dart:当两个或多个任务等待同一个 Future 时会发生什么

空值判断运算符 - Flutter

如何在 Flutter 的 firebase_database 中执行事务?

Card宽度与父级匹配

Bad state:在Flutter中从 addStream 添加项目时,您无法关闭主题

如何在 Dart 中等待单元测试中的异步设置?

Flutter 中的 authStateChanges

如何通过 foreach 函数避免在 dart Map 中使用 await 键

NoSuchMethodError:在 null 上调用了方法validate

Flutter:如何检测键盘按键?

如何在Flatter中的press/finger/mouse/cursor位置显示菜单

谷歌dart Regions?

Flutter:如何获取assets目录中所有图像的名称列表?

扩展一个只有一个工厂构造函数的类

Dart 库中part和part of背后的原因是什么?

Dart 是否有断点语句?

如何将 `ByteData` 实例写入 Dart 中的文件?

如何比较 Dart 中的列表是否相等?