file_picker

Last updated:

0 purchases

file_picker Image
file_picker Images
Add to Cart

Description:

file picker

File Picker #
A package that allows you to use the native file explorer to pick single or multiple files, with extensions filtering support.
Currently supported features #

Uses OS default native pickers
Supports multiple platforms (Mobile, Web, Desktop)
Pick files using custom format filtering — you can provide a list of file extensions (pdf, svg, zip, etc.)
Pick files from cloud files (GDrive, Dropbox, iCloud)
Single or multiple file picks
Supports retrieving as XFile (cross_file) for easy manipulation with other libraries
Different default type filtering (media, image, video, audio or any)
Picking directories
Load file data immediately into memory (Uint8List) if needed;
Open a save-file / save-as dialog (a dialog that lets the user specify the drive, directory, and name of a file to save)

If you have any feature that you want to see in this package, please feel free to issue a suggestion. 🎉
Compatibility Chart #



API
Android
iOS
Linux
macOS
Windows
Web




clearTemporaryFiles()
✔️
✔️






getDirectoryPath()
✔️
✔️
✔️
✔️
✔️



pickFiles()
✔️
✔️
✔️
✔️
✔️
✔️


saveFile()
✔️
✔️
✔️
✔️
✔️




See the API section of the File Picker Wiki or the official API reference on pub.dev for further details.
Documentation #
See the File Picker Wiki for every detail on about how to install, setup and use it.
File Picker Wiki #

Installation
Setup

Android
iOS
Web
Desktop


API

Filters
Parameters
Methods


FAQ
Troubleshooting

Usage #
Quick simple usage example:
Single file
FilePickerResult? result = await FilePicker.platform.pickFiles();

if (result != null) {
File file = File(result.files.single.path!);
} else {
// User canceled the picker
}
copied to clipboard
Multiple files
FilePickerResult? result = await FilePicker.platform.pickFiles(allowMultiple: true);

if (result != null) {
List<File> files = result.paths.map((path) => File(path!)).toList();
} else {
// User canceled the picker
}
copied to clipboard
Multiple files with extension filter
FilePickerResult? result = await FilePicker.platform.pickFiles(
allowMultiple: true,
type: FileType.custom,
allowedExtensions: ['jpg', 'pdf', 'doc'],
);
copied to clipboard
Pick a directory
String? selectedDirectory = await FilePicker.platform.getDirectoryPath();

if (selectedDirectory == null) {
// User canceled the picker
}
copied to clipboard
Save-file / save-as dialog
String? outputFile = await FilePicker.platform.saveFile(
dialogTitle: 'Please select an output file:',
fileName: 'output-file.pdf',
);

if (outputFile == null) {
// User canceled the picker
}
copied to clipboard
Load result and file details #
FilePickerResult? result = await FilePicker.platform.pickFiles();

if (result != null) {
PlatformFile file = result.files.first;

print(file.name);
print(file.bytes);
print(file.size);
print(file.extension);
print(file.path);
} else {
// User canceled the picker
}
copied to clipboard
Retrieve all files as XFiles or individually #
FilePickerResult? result = await FilePicker.platform.pickFiles();

if (result != null) {
// All files
List<XFile> xFiles = result.xFiles;

// Individually
XFile xFile = result.files.first.xFile;
} else {
// User canceled the picker
}
copied to clipboard
Pick and upload a file to Firebase Storage with Flutter Web
FilePickerResult? result = await FilePicker.platform.pickFiles();

if (result != null) {
Uint8List fileBytes = result.files.first.bytes;
String fileName = result.files.first.name;

// Upload file
await FirebaseStorage.instance.ref('uploads/$fileName').putData(fileBytes);
}
copied to clipboard
For full usage details refer to the Wiki above.
Example App #
Android

iOS

MacOS

Linux

Windows

Getting Started #
For help getting started with Flutter, view our online
documentation.
For help on editing plugin code, view the documentation.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.