如何让用户从 Flutter 应用程序下载/保存文件?

Posted

技术标签:

【中文标题】如何让用户从 Flutter 应用程序下载/保存文件?【英文标题】:How to make user download/save file from the flutter app? 【发布时间】:2020-10-10 23:06:25 【问题描述】:

我希望用户能够将由 Flutter 应用程序生成的 txt/doc/pdf 文件存储在他/她的手机上任何他/她想要的地方。例如,如果它是一个 webapp,这将通过发送 HTTP 头 Content-Disposition: attachment; filename=MyFileName.txt 来实现。在颤振应用中是否有可能?我尝试查看url_launcherflutter_downloaderflutter_webview_pluginflutter_web_browser 包,但没有一个提供相关功能。我将不胜感激有关此问题的任何提示。

【问题讨论】:

看起来这可能有效:***.com/a/61495252/50962 不,不起作用 【参考方案1】:

获取目录

您可以使用flutter_file_dialog 让用户使用此代码选择位置:

final params = SaveFileDialogParams(sourceFilePath: "path_of_file_to_save");
final filePath = await FlutterFileDialog.saveFile(params: params);
print(filePath);

保存文件

为此,只需使用 path_provider :https://flutter.dev/docs/cookbook/persistence/reading-writing-files

【讨论】:

当我从pubspec.yaml 的资产部分中注册的项目的根目录指定正确路径时,我收到一个异常,即找不到源文件。它必须是完整的设备路径吗?怎么可能得到一个?顺便说一句,tbh,如果我在获得filePath 之后撰写内容,我真的不明白为什么我需要指定sourceFilePath: "path_of_file_to_save" 资产和本地存储是两个不同的东西,在这里查看我的回复:***.com/a/62499275/5990125

以上是关于如何让用户从 Flutter 应用程序下载/保存文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何让用户从 web 应用程序上的 firebase 存储下载图像?

Flutter 初尝:从 Java 无缝过渡

从url下载pdf,在flutter中保存到android中的手机本地存储

如何使用 Javascript 下载、压缩和保存多个文件并取得进展?

Flutter:如何从联系人获取用户地址

如何在flutter中将用户数据保存在云Firestore中