如何在 Flutter Web 上选择目录?

Han*_*ård 5 flutter flutter-web

我们正在努力让用户能够选择整个文件夹并将其上传到我们的后端。这在 Android 和 iOS 上没有问题,我可以使用getDirectoryPath()from FilePicker,然后使用 获取所有文件Directory(path).listSync(recursive: true)

问题是,这在网络上不可用,虽然我可以兑换dart:iouniversal_io但这对getDirectoryPath().

我在这里可以使用其他方法吗?最终目标是将所选文件夹上传到 Google Cloud Storage,所以我的一个想法是完全绕过 Flutter,但我还没有找到一种方法来做到这一点。有任何想法吗?

use*_*290 0

File System Access APIshowDirectoryPicker,这将是一种可行的方法,但并非所有浏览器都支持它。

一种选择是允许用户选择多个文件并上传字节。不是同一件事,但在某些情况下就足够了。像这样的东西:

final result = await FilePicker.platform.pickFiles(allowMultiple: false);

if (result != null && result.files.isNotEmpty) {
  final fileBytes = result.files.first.bytes;
  final fileName = result.files.first.name;
  
  // TODO upload file
}
Run Code Online (Sandbox Code Playgroud)