dart - 在 Flutter 应用中下载大型 pdf 文件

我正在寻找一种从外部服务器下载大型 pdf 文件的方法,并使用 Flutter 应用程序进行离线存储。

但是下载一个大文件(有时 100mb+)需要一些时间。我不希望应用程序陷入等待下载的功能。我正在寻找的是一个下载函数,它有一个带有进度报告的回调(类似于:250000/500000 字节完成。不必完全如此。只是我可以使用并制作进度条的东西的)。

这甚至可以在 Flutter 中实现吗?我遇到的唯一东西是 HTTP 库。但这似乎没有进度回调,只是简单地阅读 http 调用的内容(也没有进度报告)。我希望有人可以为我提供一种方法来实现这一点。

亲切的问候, 凯文·沃尔特

编辑: C# 完美地诠释了我的意思
https://stackoverflow.com/a/9459441/2854656

最佳答案

  • https://docs.flutter.io/flutter/dart-io/HttpClient-class.html
  • https://docs.flutter.io/flutter/dart-io/HttpClientResponse-class.html
int fileSize;
int downloadProgress = 0;

new HttpClient().get('localhost', 80, '/file.txt')
     .then((HttpClientRequest request) => request.close())
     .then((HttpClientResponse response) {
       fileSize ??= respone.contentLength;
       response.transform(utf8.decoder).listen((contents) {
         downloadProgres += contents.length;
         // handle data
       });
     });

https://stackoverflow.com/questions/49839935/

相关文章:

generics - 如何从 Dart/Flutter 中的泛型函数调用命名构造函数

ios - 将我的 Flutter App 发送到我的真实 iPhone 而不是模拟器

flutter - 如何等待一个类初始化?

dart - Flutter - 使用 Flutter 创建自定义控件

dart - Flutter - float 操作按钮 - 隐藏项目的可见性

flutter - 如何从字节数据中读取蓝牙特征并将其转换为适当的值(用于 flutter 的蓝牙)

ios - 无法使用 PathProvider 依赖项构建 flutter 项目

android - 如何模拟/ stub Flutter 平台 channel /插件?

firebase - 我应该将图片上传到 Cloud Firestore 还是 Firebase S

flutter - 在 SafeArea 中获取小部件高度的正确方法