在Flutter中,可以使用Dio库来从URL下载文件并将文件保存在资源文件夹中。以下是一个完整的示例代码:
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:path_provider/path_provider.dart';
Future<void> downloadFile(String url, String fileName) async {
Dio dio = Dio();
try {
Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocPath = appDocDir.path;
String filePath = '$appDocPath/$fileName';
await dio.download(url, filePath);
print('File downloaded to: $filePath');
} catch (e) {
print('Error downloading file: $e');
}
}
void main() {
String fileUrl = 'https://example.com/file.pdf';
String fileName = 'file.pdf';
downloadFile(fileUrl, fileName);
}
上述代码中,首先导入了dart:io
和package:dio/dio.dart
库。然后定义了一个downloadFile
函数,该函数接受文件的URL和文件名作为参数。
在函数内部,创建了一个Dio实例,并使用download
方法从给定的URL下载文件。下载完成后,将文件保存在应用程序文档目录中,通过getApplicationDocumentsDirectory
函数获取该目录的路径。最后,打印出文件保存的路径。
在main
函数中,指定了要下载的文件的URL和文件名,并调用downloadFile
函数进行下载。
请注意,为了使上述代码正常工作,需要在pubspec.yaml
文件中添加path_provider
和dio
依赖项。
这是一个简单的示例,你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云