我创建了一个flutter应用程序,我有一个CSV文件,用作用户的模板。我想提供一个按钮,允许用户下载此CSV文件,这样他们就可以使用它来拥有CSV文件,已经有我们的模板。
问题是我不知道最好的方法是先在线存储文件,然后获取URL并在flutter下载器URL上使用它,还是将其保存在本地代码资产中,当用户点击下载模板按钮时引用该文件。(我不知道这个选项是否可行),下载总是失败。我使用flutter_downloader包。
如何解决这个问题?
这是我的代码,我的代码有问题吗?
/// Check if the file exist or not
if (await File(externalDir!.path + "/" + fileName).exists()) {
OpenFilex.open(externalDir!.path + "/" + fileName);
} else {
/// Download the file if it doesn't exist in the user's device
final String localPath = (await getApplicationDocumentsDirectory()).path;
/// Dummy file name I want use (it exist in my asset dir"
const String fileName = 'add.png';
final data = await rootBundle.load('assets/logo/add.png');
final bytes = data.buffer.asUint8List();
final File file = File('$localPath/$fileName');
await file.writeAsBytes(bytes);
/// Download the file
final taskId = await FlutterDownloader.enqueue(
url: '',
savedDir: localPath,
fileName: fileName,
showNotification: true,
openFileFromNotification: true,
);
}
1条答案
按热度按时间sigwle7e1#
要从AppBundle加载文件,然后将其保存到用户电话,请执行以下操作:
编辑:正如Stephan正确指出的那样,如果你想把文件存储在下载文件夹中,你会发现关于那个here的附加信息。谢谢Stephan!