Allows user pick a document. Picked document is copied to app temporary directory. Optionally allows pick document with specific extension only.
When file is picked its extension is checked using
allowedFileExtensions parameter. Then file is copied to app temp directory. Copied file path is returned as result. If picked file extension is not in
allowedFileExtensions list then
extension_mismatch error is returned.
Intent.ACTION_OPEN_DOCUMENT is used. This intent is supported only from Android 19 (KitKat) SDK version. So this plugin can be used only if app
minSdkVersion is 19 or more.
UIDocumentPickerViewController is used. Files can be filtered by list of UTI types using
allowedUtiTypes parameter. Picked file path is returned as result.
Plugin has 3 optional parameters to help pick only specific document type:
List<String> allowedUtiTypes(used only in iOS)
In iOS Uniform Type Identifiers is used to check document types. If list is null or empty "public.data" document type will be provided. Only documents with provided UTI types will be enabled in iOS document picker.
List<String> allowedFileExtensions(used both in iOS and in Android)
List of file extensions that picked file should have. If list is null or empty - picked document extension will not be checked.
allowedMimeType(used only in Android)
Only files with provided MIME type will be shown in document picker. If param is null -
*/*MIME type will be used.
List<String> invalidFileNameSymbols(used both in iOS and in Android)
List symbols that will be sanitized to "
_" in the selected document name. I.e. Google Drive allows symbol '/' in the document name, but this symbol is not allowed in file name that will be saved locally.
Example: file name 'Report_2018/12/08.txt' will be replaced to 'Report_2018_12_08.txt'
//Without parameters: final path = await FlutterDocumentPicker.openDocument(); ... //With parameters: FlutterDocumentPickerParams params = FlutterDocumentPickerParams( allowedFileExtensions: ['mwfbak'], allowedUtiTypes: ['com.sidlatau.example.mwfbak'], allowedMimeType: 'application/*', invalidFileNameSymbols: ['/'], ); final path = await FlutterDocumentPicker.openDocument(params: params);
For help getting started with Flutter, view our online documentation.
For help on editing plugin code, view the documentation.
- Built-in types and core primitives for a Flutter application. [...]
- Support for asynchronous programming, with classes such as Future and Stream. [...]
- Classes and utilities that supplement the collection support in dart:core. [...]
- Encoders and decoders for converting between different data representations, including JSON and UTF-8. [...]
- Built-in types, collections, and other core functionality for every Dart program. [...]
- Interact with developer tools such as the debugger and inspector. [...]
- Mathematical constants and functions, plus a random number generator. [...]
- Lists that efficiently handle fixed sized data (for example, unsigned 8 byte integers) and SIMD numeric types. [...]
- File, socket, HTTP, and other I/O support for non-web applications. [...]
- Concurrent programming using isolates: independent workers that are similar to threads but don't share memory, communicating only via messages. [...]