如何在 Flutter 中添加文件选择器插件?

Posted

技术标签:

【中文标题】如何在 Flutter 中添加文件选择器插件?【英文标题】:How to add a File Picker plugin in Flutter? 【发布时间】:2018-11-29 18:40:28 【问题描述】:

我正在创建一个 Flutter 项目,其中我有一段数据 (JSON),我想从中导入和导出到用户想要的位置。为了实现这一点,我需要 Flutter 中的 File Picker 插件。现在,我在 Dart Packages 存储库中搜索了 "file picker",但没有找到。

有没有办法获得如下所示的文件选择器:

甚至这个...

第一个屏幕截图更适合我,因为它允许从不同的来源(如云端硬盘)选择文件。

另外,由于我想导出数据,我可能也想要一个Folder Picker。 ;) 但是,如果有任何其他替代文件夹选择器。我很高兴知道...

【问题讨论】:

您必须构建自己的 UI,但 path_provider 插件提供了对几个目录的跨平台访问。 ios 本身是否具有类似于第一张图像的屏幕?您还可以创建一个使用 platform channels 的插件 【参考方案1】:

我前段时间创建了一个 file_picker 插件,以便可以选择(在 iOS 和 android 上)绝对路径,然后使用 Flutter 加载它。

您可以在这里查看:https://pub.dev/packages/file_picker

【讨论】:

这是一个不错的插件。我有一个特定要求,只允许选择图像和 PDF 文件。有没有办法提供多个列入白名单的文件扩展名? @MilindMevada 目前没有。你不能同时得到多个文件扩展名过滤器,除非你使用FileType.IMAGEFileType.VIDEO左右。在这种情况下是的。但是,对于其他自定义类型。这很困难,因为我试图让 iOS 和 Android 之间的交互尽可能无缝,这样开发人员就不必在应用程序中处理自己。 非常感谢您提供的信息。 Flutter 社区非常感谢开源贡献。 这个插件会有桌面实现吗? @MiguelRuivo 干得好先生,但它说 No implementation found for any on channel miguelruivo.flutter.plugins.filepicker【参考方案2】:

我使用file_picker 库来选择文件。你也可以用它来挑选图片。

Future getPdfAndUpload(int position) async 

    File file = await FilePicker.getFile(
      type: FileType.custom,
      allowedExtensions: ['pdf','docx'], //here you can add any of extention what you need to pick
    );

    if(file != null) 

      setState(() 

          file1 = file; //file1 is a global variable which i created
     
      );

    
  

这里file_picker颤振库。

【讨论】:

试试这个版本。文件选择器:^1.12.0【参考方案3】:

这是一个更好的文档选择器。它看起来像存储访问框架中的本机文档选择器,这就是您在图片中所拥有的。 flutter_document_picker

【讨论】:

【参考方案4】:

我和你在同一条船上,哈哈!

我注意到documents_picker 0.0.2。它允许用户选择多个文件,它似乎符合需要!

查看:https://pub.dartlang.org/packages/documents_picker#-readme-tab-

【讨论】:

它是否包含文件夹的选择? 见鬼。它没有。不幸的是,它只允许特定类型。我会继续搜索@MelvinAbraham 非常感谢!我还没有测试过这个插件,因为我现在没有我的桌面......它是否提供类似于第一个屏幕截图的界面?

以上是关于如何在 Flutter 中添加文件选择器插件?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Image Picker 插件为每个选择的文件分配自己的名称

如何在 Linux 上的 Flutter 中打开图形文件选择器?

Flutter/Dart - 如何在其他屏幕上的图像选择器后更新图像

如何在Flutter中保存图像文件?使用Image_picker插件选择文件

Flutter 日期选择器验证

有没有办法让颤动的 webview 使用 android 相机进行文件上传?如何在 webview_flutter 中打开文件选择器?