Flutter 下载文件操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5dCIPdBm-1635860443089)(https://ducafecat.tech/2021/11/03/translation/downloading-a-file-in-flutter/2021-11-02-21-06-58.png)]
原文在这里插入代码片
https://medium.com/halkbank-mobile-tech/downloading-a-file-in-flutter-d6762825c0a4
代码
https://github.com/deremakif/FlowderSample
参考
- https://pub.dev/packages/path_provider
- https://pub.dev/packages/flutter_downloader
- https://pub.dev/packages/flowder
- https://pub.dev/packages/open_file
- https://pub.dev/packages/percent_indicator
正文
今天我要写一篇关于 flowder package 的文章。我用它从服务器上下载文件。有很多方法可以做到这一点,而且还有更受欢迎的软件包如 flutter_downloader 。但我更喜欢 flowder 软件包,因为它的实现很简单。
首先,如果下载文件夹不存在,我们应该创建它。要做到这一点,我们需要导入 path_provider package。并在当前页的 initState()
中调用 initPlatformState
方法。
Future<void> initPlatformState() async {_setPath();if (!mounted) return;
}void _setPath() async {Directory _path = await getApplicationDocumentsDirectory();String _localPath = _path.path + Platform.pathSeparator + 'Download';final savedDir = Directory(_localPath);bool hasExisted = await savedDir.exists();if (!hasExisted) {savedDir.create();}path = _localPath;
}
现在,我们有下载文件夹来保存文件。包的下载方法需要两个参数: URL 和选项。您可以根据需要自定义选项。
ElevatedButton(onPressed: () async {options = DownloaderUtils(progressCallback: (current, total) {final progress = (current / total) * 100;print('Downloading: $progress');},file: File('$path/loremipsum.pdf'),progress: ProgressImplementation(),onDone: () {OpenFile.open('$path/loremipsum.pdf');},deleteOnCancel: true,); core = await Flowder.download("https://assets.website-files.com/603d0d2db8ec32ba7d44fffe/603d0e327eb2748c8ab1053f_loremipsum.pdf",options,);
},
我使用 OpenFile package 包在文件完成下载过程时打开它。我还使用了 percent_indicator package 包来显示进展。
如果以后不需要使用该文件,可以在关闭文档后删除该文件。重要的是不要增加应用程序的大小。
OpenFile.open('$path/loremipsum.pdf').then((value) {File f = File('$path/loremipsum.pdf');f.delete();
});
- 应用程序演示
示例项目的源代码。
- GitHub - deremakif/FlowderSample
https://github.com/deremakif/FlowderSample
© 猫哥
https://ducafecat.tech/
https://github.com/ducafecat
微信群 ducafecat
Flutter 下载文件操作相关推荐
- ftp: connect: 没有到主机的路由_Qt之FTP上传/下载文件操作
一个简单的Ftp客户端文件上传/下载操作示例. 上传文件 QNetworkAccessManager manager; QUrl url; /* 设置通讯协议 */ url.setScheme(&q ...
- Qt之FTP上传/下载文件操作
一个简单的Ftp客户端文件上传/下载操作示例. 上传文件 QNetworkAccessManager manager; QUrl url; /* 设置通讯协议 */ url.setScheme(&qu ...
- 每天一个linux命令(文件上传下载文件操作):【转载】用SecureCRT来上传和下载文件...
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
- C# FTP上传和下载文件操作
目录 1.初始化FTP 2.上传文件 3.下载文件 4.代码描述 我们使用C# 需要通过FTP访问服务器时,那么上位机就要作为客户端,通过连接FTP服务来上传下载文件.这里用实际代码和简要的文字 ...
- linux上传文件操作,每天一个linux命令(文件上传下载文件操作):【转载】gzip命令(示例代码)...
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间.gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用.gzip不仅可以用 ...
- mac 下配置连接Linux服务器方法,上传下载文件操作
1.先按照文档在本地生成SSHkey 2.mac输入 sudo -i 进入超级管理员#模式下,然后 创建用户 #useradd XXXadmin #passwd XXXadmin XXXadmin用户 ...
- C++简单的下载文件操作的封装
头文件 #include "targetver.h"#include <stdio.h> #include <tchar.h>// #include < ...
- 大数据之_Hadoop工作笔记002---SpringBoot连接Hadoop HDFS进行创建文件夹,添加上传文件,删除文件,下载文件操作
技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 首先,把环境搭好,至今我只搭了非集群的.看另一篇博文, idea开发 1.创建工程,选择:WEB,把web勾上,选择sq ...
- linux lftp下载目录,linux中使用lftp上传下载文件
lftp是linux中一款ftp服务器相比windows中的ftp显得要复杂不少了,下面我来总结一下lftp文件上传,文件下载,及文件查找等等相关命令吧. lftp连接的几种方法,最常用的是lftp ...
最新文章
- C# 里怎样得到当前执行的函数名,当前代码行,源代码文件名。
- java请求怎么获取token,如何获取变量token的值
- springboot启动流程
- vmware虚拟机不识别usb设备
- HBase 的存储结构
- 【jQuery系列之插件】jQuery插件---exselect实现联动
- 美国防部DARPA发起地下空间挑战赛提供3百万美元巨奖
- 【openjudge】 CDQZ challenge 4
- 深入理解Java String 池概念(String pool concept)
- FLAG_ACTIVITY_CLEAR_TOP和singleTask的区别
- 常用的银行卡验证API接口——银行卡三元素API接口
- Windows磁盘清理工具
- MaxProxy可以成为永久关闭的911S5代理的新选择吗?
- 易语言程序假死优化_易语言假死无响应采用处理事件解决办法
- 浩鲸科技是外包公司吗_软件外包公司开发软件可靠吗
- 二级管/三极管门电路原理
- C语言 数组中插入一个数
- PC端播放RTMP流(手机端无法播放)
- 点击苹果模拟器触发事件
- XAMPP安装配置教程(Windows)
热门文章
- Bulma - 免费开源的纯 CSS 前端 UI 框架,专注于构建移动优先的响应式 web 界面
- 基于R+Oracle的海洋浮标数据显示系统(二)——网络爬虫程序和自动导入
- 仿凡科网站右侧悬浮窗 在线客服简约图标大全快捷导航钻芒美化版
- 不同路由器不同局域网共享打印机
- dota迷最雷人语录
- 小米路由器4A千兆版更换5G芯片和硬件布局后出现的刷机问题
- 【学习总结】在重庆北大青鸟能让我看到希望和学习的动力!
- 网络变压器POE供电的实现方法(示意图)
- 使用百度API实现实时公交线路查询及地图显示
- 877131-21-0,4-溴-2-乙基苯甲醇,(4-bromo-2-ethylphenyl)methanol的化学表征