[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9337":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":36,"readmeContent":37,"aiSummary":38,"trendingCount":16,"starSnapshotCount":16,"syncStatus":18,"lastSyncTime":39,"discoverSource":40},9337,"flutter_file_picker","miguelpruivo\u002Fflutter_file_picker","miguelpruivo","File picker plugin for Flutter, compatible with mobile (iOS & Android), Web, Desktop (Mac, Linux, Windows) platforms with Flutter Go support.","",null,"Dart",1546,870,19,30,0,1,2,9,3,21.82,"MIT License",false,"master",true,[27,28,29,30,31,32,33,34,35],"android","dart","flutter","flutter-plugin","golang","ios","linux","macos","windows","2026-06-12 02:02:06","![fluter_file_picker](https:\u002F\u002Fuser-images.githubusercontent.com\u002F27860743\u002F64064695-b88dab00-cbfc-11e9-814f-30921b66035f.png)\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fpub.dartlang.org\u002Fpackages\u002Ffile_picker\">\n    \u003Cimg alt=\"File Picker\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpub\u002Fv\u002Ffile_picker.svg\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSolido\u002Fawesome-flutter\">\n    \u003Cimg alt=\"Awesome Flutter\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAwesome-Flutter-blue.svg?longCache=true&style=flat-square\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fissues\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fmiguelpruivo\u002Fflutter_file_picker\" alt=\"GitHub issues badge\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker?tab=MIT-1-ov-file\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmiguelpruivo\u002Fflutter_file_picker\" alt=\"GitHub license badge\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Factions\u002Fworkflows\u002Fmain.yml\">\n    \u003Cimg alt=\"CI pipeline status\" src=\"https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Factions\u002Fworkflows\u002Fmain.yml\u002Fbadge.svg\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n# File Picker\nA package that allows you to use the native file explorer to pick single or multiple files, with extensions filtering support.\n\n## Currently supported features\n* Uses OS default native pickers\n* Supports multiple platforms (Mobile, Web, Desktop)\n* Supports **WebAssembly (Wasm)** compilation\n* Pick files using  **custom format** filtering — you can provide a list of file extensions (pdf, svg, zip, etc.)\n* Pick files from **cloud files** (GDrive, Dropbox, iCloud)\n* Single or multiple file picks\n* Supports retrieving as XFile (cross_file) for easy manipulation with other libraries\n* Different default type filtering (media, image, video, audio or any)\n* Picking directories\n* Picking both files and directories simultaneously\n* Load file data immediately into memory (`Uint8List`) if needed; \n* Open a save-file \u002F save-as dialog (a dialog that lets the user specify the drive, directory, and name of a file to save)\n\nIf you have any feature that you want to see in this package, please feel free to issue a suggestion. 🎉\n\n## Compatibility Chart\n\n| API                           | Android            | iOS                | Linux              | macOS              | Windows            | Web                |\n|-------------------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|\n| `clearTemporaryFiles()`       | :white_check_mark: | :white_check_mark: | :x:                | :x:                | :x:                | :x:                |\n| `getDirectoryPath()`          | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:                |\n| `pickFileAndDirectoryPaths()` | :x:                | :x:                | :x:                | :white_check_mark: | :x:                | :x:                |\n| `pickFiles()`                 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n| `saveFile()`                  | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n\nSee the [API section of the File Picker Wiki](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fwiki\u002Fapi) or the [official API reference on pub.dev](https:\u002F\u002Fpub.dev\u002Fdocumentation\u002Ffile_picker\u002Flatest\u002Ffile_picker\u002FFilePicker-class.html) for further details.\n\n### Darwin implementation notes\n\nThe iOS and macOS native implementations now live under the shared Darwin source tree. The iOS implementation requires iOS 14.0 or newer because it uses `PHPickerViewController` and `PHPickerResult`.\n\nThe old iOS compile-time flags (`PICKER_MEDIA`, `PICKER_AUDIO`, `PICKER_DOCUMENT`) were part of the legacy Objective-C implementation and are no longer used in the Darwin source path.\n\n\n## Documentation\nSee the **[File Picker Wiki](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fwiki)** for every detail on about how to install, setup and use it.\n\n### File Picker Wiki\n\n1. [Installation](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fplugins_flutter_file_picker\u002Fwiki\u002FInstallation)\n2. [Setup](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fplugins_flutter_file_picker\u002Fwiki\u002FSetup)\n   * [Android](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fplugins_flutter_file_picker\u002Fwiki\u002FSetup#android)\n   * [iOS](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fplugins_flutter_file_picker\u002Fwiki\u002FSetup#ios)\n   * [Web](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fwiki\u002FSetup#--web)\n   * [Desktop](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fwiki\u002FSetup#--desktop)\n3. [API](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fplugins_flutter_file_picker\u002Fwiki\u002Fapi)\n   * [Filters](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fplugins_flutter_file_picker\u002Fwiki\u002FAPI#filters)\n   * [Parameters](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fwiki\u002FAPI#parameters)\n   * [Methods](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fplugins_flutter_file_picker\u002Fwiki\u002FAPI#methods)\n4. [FAQ](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fwiki\u002FFAQ)\n5. [Troubleshooting](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fwiki\u002FTroubleshooting)\n\n## Usage\nQuick simple usage example:\n\n### Memory usage recommendation\nWhen picking multiple or large files on mobile\u002Fdesktop, avoid loading all bytes in memory (`withData: true`) as it can cause out of memory errors.\n\nPrefer `withReadStream: true` and keep `withData: false`:\n\n```dart\nFilePickerResult? result = await FilePicker.pickFiles(\n  allowMultiple: true,\n  withData: false,\n  withReadStream: true,\n);\n```\n\nYou can still use `withData: true` for small files or single selections when immediate byte access is required.\n\n#### Single file\n```dart\nFilePickerResult? result = await FilePicker.pickFiles();\n\nif (result != null) {\n  File file = File(result.files.single.path!);\n} else {\n  \u002F\u002F User canceled the picker\n}\n```\n#### Multiple files\n```dart\nFilePickerResult? result = await FilePicker.pickFiles(allowMultiple: true);\n\nif (result != null) {\n  List\u003CFile> files = result.paths.map((path) => File(path!)).toList();\n} else {\n  \u002F\u002F User canceled the picker\n}\n```\n#### Multiple files with extension filter\n```dart\nFilePickerResult? result = await FilePicker.pickFiles(\n  allowMultiple: true,\n  type: FileType.custom,\n  allowedExtensions: ['jpg', 'pdf', 'doc'],\n);\n```\n#### Pick a directory\n```dart\nString? selectedDirectory = await FilePicker.getDirectoryPath();\n\nif (selectedDirectory == null) {\n  \u002F\u002F User canceled the picker\n}\n```\n#### Save-file \u002F save-as dialog\n```dart\nString? outputFile = await FilePicker.saveFile(\n  dialogTitle: 'Please select an output file:',\n  fileName: 'output-file.pdf',\n);\n\nif (outputFile == null) {\n  \u002F\u002F User canceled the picker\n}\n```\n### Load result and file details\n```dart\nFilePickerResult? result = await FilePicker.pickFiles();\n\nif (result != null) {\n  PlatformFile file = result.files.first;\n\n  print(file.name);\n  print(file.bytes);\n  print(file.size);\n  print(file.extension);\n  print(file.path);\n} else {\n  \u002F\u002F User canceled the picker\n}\n```\n### Retrieve all files as XFiles or individually\n```dart\nFilePickerResult? result = await FilePicker.pickFiles();\n\nif (result != null) {\n  \u002F\u002F All files\n  List\u003CXFile> xFiles = result.xFiles;\n\n  \u002F\u002F Individually\n  XFile xFile = result.files.first.xFile;\n} else {\n  \u002F\u002F User canceled the picker\n}\n```\n#### Pick and upload a file to Firebase Storage with Flutter Web\n```dart\nFilePickerResult? result = await FilePicker.pickFiles();\n\nif (result != null) {\n  Uint8List fileBytes = result.files.first.bytes;\n  String fileName = result.files.first.name;\n  \n  \u002F\u002F Upload file\n  await FirebaseStorage.instance.ref('uploads\u002F$fileName').putData(fileBytes);\n}\n```\n\nFor full usage details refer to the **[Wiki](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fwiki)** above.\n\n## Example App\n#### Android\n![DemoAndroid](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fblob\u002Fmaster\u002Fexample\u002Fscreenshots\u002Fexample_android.gif?raw=true)\n\n#### iOS\n![DemoMultiFilters](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fblob\u002Fmaster\u002Fexample\u002Fscreenshots\u002Fexample_ios.gif?raw=true)\n\n#### macOS\n![DemoMacOS](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fblob\u002Fmaster\u002Fexample\u002Fscreenshots\u002Fexample_macos.gif?raw=true)\n\n#### Linux\n![DemoLinux](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fblob\u002Fmaster\u002Fexample\u002Fscreenshots\u002Fexample_linux.gif?raw=true)\n\n#### Windows\n![DemoWindows](https:\u002F\u002Fgithub.com\u002Fmiguelpruivo\u002Fflutter_file_picker\u002Fblob\u002Fmaster\u002Fexample\u002Fscreenshots\u002Fexample_windows.gif?raw=true)\n\n## Getting Started\n\nFor help getting started with Flutter, view our online\n[documentation](https:\u002F\u002Fflutter.dev).\n\nFor help on editing plugin code, view the [documentation](https:\u002F\u002Fflutter.dev\u002Fplatform-plugins\u002F#edit-code).\n","flutter_file_picker 是一个用于 Flutter 的文件选择插件，支持移动（iOS 和 Android）、Web 以及桌面（Mac、Linux、Windows）平台，并且兼容 Flutter Go。其核心功能包括使用操作系统默认的文件选择器来选取单个或多个文件，支持自定义格式过滤、云存储文件访问及目录选择等。此外，该插件还允许直接加载文件数据到内存中，方便与其他库集成处理。适用于需要跨平台文件操作的各种应用场景，如文档管理应用、图片编辑工具等，能够极大简化开发者在不同平台上实现一致文件选择体验的工作。","2026-06-11 03:22:13","top_language"]