{"id":13549431,"url":"https://github.com/miguelpruivo/flutter_file_picker","last_synced_at":"2026-01-11T04:05:39.222Z","repository":{"id":38248084,"uuid":"138361535","full_name":"miguelpruivo/flutter_file_picker","owner":"miguelpruivo","description":"File picker plugin for Flutter, compatible with mobile (iOS \u0026 Android), Web, Desktop (Mac, Linux, Windows) platforms with Flutter Go support.","archived":false,"fork":false,"pushed_at":"2024-05-18T08:40:36.000Z","size":42067,"stargazers_count":1261,"open_issues_count":41,"forks_count":607,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-05-20T22:49:22.533Z","etag":null,"topics":["android","dart","flutter","flutter-plugin","golang","ios","linux","macos","windows"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miguelpruivo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-23T01:21:18.000Z","updated_at":"2024-06-10T09:47:35.239Z","dependencies_parsed_at":"2023-07-13T07:17:15.942Z","dependency_job_id":"720f8038-fcc8-44ee-803c-972a02f105c9","html_url":"https://github.com/miguelpruivo/flutter_file_picker","commit_stats":{"total_commits":390,"total_committers":67,"mean_commits":5.82089552238806,"dds":0.6974358974358974,"last_synced_commit":"7b3eebf98167ad10527216b56e9a28bb6b7755a7"},"previous_names":["miguelpruivo/plugins_flutter_file_picker"],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelpruivo%2Fflutter_file_picker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelpruivo%2Fflutter_file_picker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelpruivo%2Fflutter_file_picker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelpruivo%2Fflutter_file_picker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miguelpruivo","download_url":"https://codeload.github.com/miguelpruivo/flutter_file_picker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246905354,"owners_count":20852813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","dart","flutter","flutter-plugin","golang","ios","linux","macos","windows"],"created_at":"2024-08-01T12:01:21.814Z","updated_at":"2025-10-23T07:14:11.085Z","avatar_url":"https://github.com/miguelpruivo.png","language":"Dart","funding_links":["https://www.buymeacoffee.com/gQyz2MR"],"categories":["Dart"],"sub_categories":[],"readme":"![fluter_file_picker](https://user-images.githubusercontent.com/27860743/64064695-b88dab00-cbfc-11e9-814f-30921b66035f.png)\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pub.dartlang.org/packages/file_picker\"\u003e\n    \u003cimg alt=\"File Picker\" src=\"https://img.shields.io/pub/v/file_picker.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Solido/awesome-flutter\"\u003e\n    \u003cimg alt=\"Awesome Flutter\" src=\"https://img.shields.io/badge/Awesome-Flutter-blue.svg?longCache=true\u0026style=flat-square\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/gQyz2MR\"\u003e\n    \u003cimg alt=\"Buy me a coffee\" src=\"https://img.shields.io/badge/Donate-Buy%20Me%20A%20Coffee-yellow.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/miguelpruivo/flutter_file_picker/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/miguelpruivo/flutter_file_picker\" alt=\"GitHub issues badge\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/miguelpruivo/flutter_file_picker?tab=MIT-1-ov-file\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/miguelpruivo/flutter_file_picker\" alt=\"GitHub license badge\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/miguelpruivo/flutter_file_picker/actions/workflows/main.yml\"\u003e\n    \u003cimg alt=\"CI pipeline status\" src=\"https://github.com/miguelpruivo/flutter_file_picker/actions/workflows/main.yml/badge.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\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* 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 / 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://github.com/miguelpruivo/flutter_file_picker/wiki/api) or the [official API reference on pub.dev](https://pub.dev/documentation/file_picker/latest/file_picker/FilePicker-class.html) for further details.\n\n\n## Documentation\nSee the **[File Picker Wiki](https://github.com/miguelpruivo/flutter_file_picker/wiki)** for every detail on about how to install, setup and use it.\n\n### File Picker Wiki\n\n1. [Installation](https://github.com/miguelpruivo/plugins_flutter_file_picker/wiki/Installation)\n2. [Setup](https://github.com/miguelpruivo/plugins_flutter_file_picker/wiki/Setup)\n   * [Android](https://github.com/miguelpruivo/plugins_flutter_file_picker/wiki/Setup#android)\n   * [iOS](https://github.com/miguelpruivo/plugins_flutter_file_picker/wiki/Setup#ios)\n   * [Web](https://github.com/miguelpruivo/flutter_file_picker/wiki/Setup#--web)\n   * [Desktop](https://github.com/miguelpruivo/flutter_file_picker/wiki/Setup#--desktop)\n3. [API](https://github.com/miguelpruivo/plugins_flutter_file_picker/wiki/api)\n   * [Filters](https://github.com/miguelpruivo/plugins_flutter_file_picker/wiki/API#filters)\n   * [Parameters](https://github.com/miguelpruivo/flutter_file_picker/wiki/API#parameters)\n   * [Methods](https://github.com/miguelpruivo/plugins_flutter_file_picker/wiki/API#methods)\n4. [FAQ](https://github.com/miguelpruivo/flutter_file_picker/wiki/FAQ)\n5. [Troubleshooting](https://github.com/miguelpruivo/flutter_file_picker/wiki/Troubleshooting)\n\n## Usage\nQuick simple usage example:\n\n#### Single file\n```dart\nFilePickerResult? result = await FilePicker.platform.pickFiles();\n\nif (result != null) {\n  File file = File(result.files.single.path!);\n} else {\n  // User canceled the picker\n}\n```\n#### Multiple files\n```dart\nFilePickerResult? result = await FilePicker.platform.pickFiles(allowMultiple: true);\n\nif (result != null) {\n  List\u003cFile\u003e files = result.paths.map((path) =\u003e File(path!)).toList();\n} else {\n  // User canceled the picker\n}\n```\n#### Multiple files with extension filter\n```dart\nFilePickerResult? result = await FilePicker.platform.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.platform.getDirectoryPath();\n\nif (selectedDirectory == null) {\n  // User canceled the picker\n}\n```\n#### Save-file / save-as dialog\n```dart\nString? outputFile = await FilePicker.platform.saveFile(\n  dialogTitle: 'Please select an output file:',\n  fileName: 'output-file.pdf',\n);\n\nif (outputFile == null) {\n  // User canceled the picker\n}\n```\n### Load result and file details\n```dart\nFilePickerResult? result = await FilePicker.platform.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  // User canceled the picker\n}\n```\n### Retrieve all files as XFiles or individually\n```dart\nFilePickerResult? result = await FilePicker.platform.pickFiles();\n\nif (result != null) {\n  // All files\n  List\u003cXFile\u003e xFiles = result.xFiles;\n\n  // Individually\n  XFile xFile = result.files.first.xFile;\n} else {\n  // User canceled the picker\n}\n```\n#### Pick and upload a file to Firebase Storage with Flutter Web\n```dart\nFilePickerResult? result = await FilePicker.platform.pickFiles();\n\nif (result != null) {\n  Uint8List fileBytes = result.files.first.bytes;\n  String fileName = result.files.first.name;\n  \n  // Upload file\n  await FirebaseStorage.instance.ref('uploads/$fileName').putData(fileBytes);\n}\n```\n\nFor full usage details refer to the **[Wiki](https://github.com/miguelpruivo/flutter_file_picker/wiki)** above.\n\n## Example App\n#### Android\n![DemoAndroid](https://github.com/miguelpruivo/flutter_file_picker/blob/master/example/screenshots/example_android.gif?raw=true)\n\n#### iOS\n![DemoMultiFilters](https://github.com/miguelpruivo/flutter_file_picker/blob/master/example/screenshots/example_ios.gif?raw=true)\n\n#### MacOS\n![DemoMacOS](https://github.com/miguelpruivo/flutter_file_picker/blob/master/example/screenshots/example_macos.gif?raw=true)\n\n#### Linux\n![DemoLinux](https://github.com/miguelpruivo/flutter_file_picker/blob/master/example/screenshots/example_linux.gif?raw=true)\n\n#### Windows\n![DemoWindows](https://github.com/miguelpruivo/flutter_file_picker/blob/master/example/screenshots/example_windows.gif?raw=true)\n\n## Getting Started\n\nFor help getting started with Flutter, view our online\n[documentation](https://flutter.io/).\n\nFor help on editing plugin code, view the [documentation](https://flutter.io/platform-plugins/#edit-code).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiguelpruivo%2Fflutter_file_picker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiguelpruivo%2Fflutter_file_picker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiguelpruivo%2Fflutter_file_picker/lists"}