一、前言
应用内下载文件时可使用,基于dio的下载文件
二、引用
dio
功能:网络请求。
地址:https://pub.dev/packages/dio
path_provider
功能:提供访问文件系统的插件。
地址:https://pub.dev/packages/path_provider
三、使用
- 生成存储文件地址
- get下载文件及获取下载进度
- 写入文件
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:path_provider/path_provider.dart';
/// 获取app文件地址
Directory storageDir = await getApplicationDocumentsDirectory();
String storagePath = storageDir.path;
File file = new File('$storagePath/世界上有趣的事太多.epub');
if (!file.existsSync()) {
file.createSync();
}
/// dio使用get下载文件
try{
var response = await Dio().get(
"http://ds.addsxz.com/912sjsyqds.epu",
onReceiveProgress: (num received, num total){ /// 获取下载进度
double _process = double.parse('${(received / total).toStringAsFixed(2)}');
print(_process);
},
options: Options(
responseType: ResponseType.bytes,
followRedirects: false,
)
);
file.writeAsBytesSync(response.data); /// 写入文件
return file;
} on DioError catch(e) {
print("response.statusCode: ${e.type}");
}