存储重复加载的文件位置



我正在构建一个使用Flutter的web应用程序,需要在用户提供的本地文件中读取。然而,目前的文件需要被选中,并手动添加到web应用程序,每次用户登录。

我认为目前不可能获得在Flutter Web上选择的文件的本地目录路径(https://github.com/flutter/flutter/issues/45296)。

虽然我想我无论如何都会问-当web应用程序启动时,是否有可能自动加载文件?

这显然只适用于文件保存在同一设备上的位置。

可能最简单的方法是使用shared_preferences。该插件支持所有的Flutter平台。

await prefs.setString('path', path);
...
final String? path = prefs.getString('path');

根据我自己的持续研究,我得出结论,目前这是不可能的,原因有两个:

当一个文件被提供给浏览器时,浏览器并不存储文件的实际本地路径。这(我相信)主要是出于安全考虑。(用户计算机中本地文件的绝对路径)

其次,我不相信web应用程序在启动时自动访问用户本地目录中的文件是可能的。这也是出于安全考虑——因为这样的权限可能被滥用于恶意目的。

如果有人对此有任何意见,这将提高我的理解,对未来的读者非常有用。

最新更新