我正在构建一个使用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应用程序在启动时自动访问用户本地目录中的文件是可能的。这也是出于安全考虑——因为这样的权限可能被滥用于恶意目的。
如果有人对此有任何意见,这将提高我的理解,对未来的读者非常有用。