NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #175 most downloaded on pub.dev
A package that allows you to use a native file explorer to pick single or multiple absolute file paths, with extension filtering support.
Last release 17 days ago
15 Sep 2026
Release timing varies
gaps range from 8 days to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
8 years old
242 releases · first in 2018
Unifies all platforms (IO, Web and Desktop) in a single plugin (file_picker) that can be used seamlessly across all. Both file_picker_interface and fi
Breaking Changes
FilePicker.platform.pickFiles() and extract the files from FilePickerResult;File instances from dart:io and dart:html required stubbing and bloated code, it's no longer available as helper method so you'll have to instanciate a File with the picked paths;New features
FilePicker.platform.pickFiles() with desired parameters which will return a FilePickerResult with a List<PlatformFile> containing the picked data;FilePickerResult and PlatformFile classes with helper getters;withData that allows file data to be immediately available on memory as Uint8List (part of PlatformFile instance). This is particularly helpful on web or if you are going to upload to somehwere else;Removed
getFilePath(), getMultiFilePath(), getFile() and getMultiFile() are no longer availble in favor o pickFiles();One column per quarter.
Go: Updates MacOS directory picker to applescript (thank you @trister1997).
Go: Updates MacOS directory picker to applescript (thank you @trister1997).
Android: fixes picking paths from Downloads directory on versions below Android Q.
Android: fixes picking paths from Downloads directory on versions below Android Q.
Android: adds support to non-legacy picking on Android Q or above (thank you @lakshyab1995).
Android: adds support to non-legacy picking on Android Q or above (thank you @lakshyab1995).
Adds allowCompression property that will define if media (video & image) files are allowed to be compressed by OS when picked. On Android this has no
Adds allowCompression property that will define if media (video & image) files are allowed to be compressed by OS when picked. On Android this has no effect as it already returns the original file or an integral copy.
Fixes an issue that could prevent 1.13.0 from being built due to missing allowCompression property.
Fixes an issue that could prevent 1.13.0 from being built due to missing allowCompression property.
Adds getDirectoryPath() desktop (go) implementation.
Adds getDirectoryPath() desktop (go) implementation.
Adds onFileLoading handler for every picking method that will provide picking status: FilePickerStatus.loading and FilePickerStatus.done so you can, f
Adds onFileLoading handler for every picking method that will provide picking status: FilePickerStatus.loading and FilePickerStatus.done so you can, for example, display a custom loader.
Updates README file.
Updates README file.
Updates README file (iOS preview).
Updates README file (iOS preview).
Updates tearDown() call order on Android's implementation.
Updates tearDown() call order on Android's implementation.
Adds getDirectoryPath() method that allows you to select and pick directory paths. Android, requires SDK 21 or above for this to work, and iOS require
Adds getDirectoryPath() method that allows you to select and pick directory paths. Android, requires SDK 21 or above for this to work, and iOS requires iOS 11 or above.
Adds clearTemporaryFiles() that allows you to explicitly remove cached files - on Android applies typically to those picked from remote providers, on
Adds clearTemporaryFiles() that allows you to explicitly remove cached files - on Android applies typically to those picked from remote providers, on iOS all picked files are cached.
Adds a temporary workaround on Android where it can trigger onRequestPermissionsResult twice, related to Flutter issue 49365 for anyone affected in Fl
Adds a temporary workaround on Android where it can trigger onRequestPermissionsResult twice, related to Flutter issue 49365 for anyone affected in Flutter versions below 1.14.6.
Adds FileType.media that will allow you to pick video and images at the same time. On iOS, this will let you pick directly from Photos app (gallery),
Adds FileType.media that will allow you to pick video and images at the same time. On iOS, this will let you pick directly from Photos app (gallery), if you want to use Files app, you must use FileType.custom with desired extensions.
Minor fix on getFile() method - should affect only those on 1.8.0.
Minor fix on getFile() method - should affect only those on 1.8.0.
Updates podspec to use only PhotoGallery from DKImagePickerController (thanks @jamesdixon!)
Updates podspec to use only PhotoGallery from DKImagePickerController (thanks @jamesdixon!)
Updates iOS multi gallery picker dependency and adds a modal loading while fetching exporting assets.
Updates iOS multi gallery picker dependency and adds a modal loading while fetching exporting assets.
Added support for multi-picks of videos and photos from Photos app on iOS through DKImagePicker - use any of the getMulti methods with FileType.image
Breaking change
Added support for multi-picks of videos and photos from Photos app on iOS through DKImagePicker - use any of the getMulti methods with FileType.image or FileType.video. From now on, you'll need to add use_frameworks! in your ios/Podfile.
Addresses an issue with plugin calls on Go (Desktop) - MacOS
Addresses an issue with plugin calls on Go (Desktop) - MacOS
Addresses an issue with plugin calls on Go (Desktop) - Linux & Windows
Addresses an issue with plugin calls on Go (Desktop) - Linux & Windows
Fixes a crash on Android when a file has an id that can't be resolved and uses a name instead (#221);
Updates Go (Desktop) to support multiple extension filters.
Updates Go (Desktop) to support multiple extension filters.
Addresses an issue that could result in permission handler resolving requests from other activities.
Addresses an issue that could result in permission handler resolving requests from other activities.
Adds multiple file extension filter support. From now on, you _must_ provide a List of extensions with type FileType.custom when restricting types whi
List of extensions with type FileType.custom when restricting types while picking.iOS: Fixes an issue that could result in a crash when selecting files (with repeated taps) from 3rd party remote providers (Google Drive, Dropbox etc.
FileType.custom when providing a custom file extension filter;Breaking change: Refactored FileType to match lower camelCase Dart guideline (eg. FileType.ALL now is FileType.any);
FileType to match lower camelCase Dart guideline (eg. FileType.ALL now is FileType.any);Adds temporary workaround for (#49365)( ) until 1.14.6 lands on stable channel.
Adds temporary workaround for (#49365)(https://github.com/flutter/flutter/issues/49365) until 1.14.6 lands on stable channel.
Updates channel name on iOS.
Updates channel name on iOS.
Fixes an issue that could result in a crash when tapping multiple times in the same media file while picking, on some iOS devices (#171).
Bug fix
Removes checked flutter_export_environment.sh from example app.
Removes checked flutter_export_environment.sh from example app.
Updates dependencies.
Updates dependencies.
Fixes an issue that could cause a crash when picking video files in iOS 13 or above due to SDK changes.
Bug fix
Updates go-flutter dependencies.
Updates go-flutter dependencies.
Bug fix: Fixes an issue that could result in some cached files, picked from Google Photos (remote file), to have the name set as null.
Bug fix: Fixes an issue that could result in some cached files, picked from Google Photos (remote file), to have the name set as null.
Updates Android SDK deprecated code.
New features
hover init and then hover run within the plugin's example folder (you must have go and hover installed, check the previous point).getFile, now there is also a getMultiFile which behaves the same way, but returning a list of files instead.Improvements
Bug fix: Fixes an issue that could prevent internal storage files from being properly picked.
Bug fix: Fixes an issue that could prevent internal storage files from being properly picked.
Bug fix: Fixes an issue that could cause a crash when picking files with very long names.
Bug fix: Fixes an issue that could cause a crash when picking files with very long names.
Changes: Updates Android target API to 29.
Rollback - Breaking change: Re-adds runtime verification for external storage read permission. Don't forget to add the permission to the AndroidManife…
Rollback - Breaking change: Re-adds runtime verification for external storage read permission. Don't forget to add the permission to the AndroidManifest.xml file as well. More info in the README file.
Bug fix: Fixes a crash that could cause some Android API to crash when multiple files were selected from external storage.
Removes the Android write permissions requirement.
Improvements
Bug fix: Fixes an issue that could prevent users to pick files from the iCloud Drive app, on versions below iOS 11.
Bug fix: Fixes an issue that could prevent users to pick files from the iCloud Drive app, on versions below iOS 11.
Bug fix: Protects the registrar.activity() in the Android side of being accessed when it's null.
Bug fix: Protects the registrar.activity() in the Android side of being accessed when it's null.
Rollback: Removes a local dependency that shouldn't have been committed with 1.3.4 which would cause Android build to fail.
Rollback: Removes a local dependency that shouldn't have been committed with 1.3.4 which would cause Android build to fail.
Fixes an issue where sometimes a single file path was being returned as a List instead of String.
Bug fixes
List instead of String.requestCode in Android intents are now restricted to 16 bits.Bug fix: Returns a null value in the getFile() when the picker is canceled.
Bug fix: Returns a null value in the getFile() when the picker is canceled.
Bug fix: Fixes an issue on Android, where other activity would try to call FilePicker's result object when it shouldn't.
Bug fix: Fixes an issue on Android, where other activity would try to call FilePicker's result object when it shouldn't.
FileType.CAMERA is no longer available, if you need it, you can use this package along with image_picker.
Breaking changes
FileType.CAMERA is no longer available, if you need it, you can use this package along with image_picker.New features
getMultiFilePath() method which will return a Map<String,String> with all paths from selected files, where the key matches the file name and the value its path. Optionally, it also supports filtering by file extension, otherwise all files will be selectable. Nevertheless, you should keep using getFilePath() for single path picking.FileType.AUDIO to pick audio files. In iOS this will let you select from your music library. Paths from DRM protected files won't be loaded (see README for more details).getFile() utility method that does the same of getFilePath() but returns a File object instead, for the returned path.Bug fixes and updates
Breaking change: Migrate from the deprecated original Android Support Library to AndroidX. This shouldn't result in any functional changes, but it req…
Breaking change: Migrate from the deprecated original Android Support Library to AndroidX. This shouldn't result in any functional changes, but it requires any Android apps using this plugin to also migrate if they're using the original support library.
- Updates README file.
FileType.PDF was removed since now it can be used along with custom file types by using the FileType.CUSTOM and providing the file extension (e.g. PDF
Breaking changes
FileType.PDF was removed since now it can be used along with custom file types by using the FileType.CUSTOM and providing the file extension (e.g. PDF, SVG, ZIP, etc.).FileType.CAPTURE is now FileType.CAMERANew features
FileType.CUSTOMBug fixes and updates
file_picker- Fixes build.gradle.
build.gradle.- Minor update of README file.
- Adds comments for public API
Adds support for ANY and VIDEO files.
Nothing published for this version
Replaces commons dependency with FilePath class on Android, to handle path resolution on different SDK.
Minor correction in the README file.
Changed Meta minimum version due to versioning conflict with flutter_localization.
- Updated readme.
Changed license from Apache 2.0 to MIT.
Your coding agent can read these notes before it upgrades. Set up the MCP server →