pickFiles method

Future<FilePickerResult?> pickFiles({
  1. FileType type = FileType.any,
  2. List<String>? allowedExtensions,
  3. dynamic onFileLoading(
    1. FilePickerStatus
    )?,
  4. bool allowCompression = true,
  5. bool allowMultiple = false,
  6. bool withData = false,
  7. bool withReadStream = false,
})

Retrieves the file(s) from the underlying platform

Default type set to FileType.any with allowMultiple set to false Optionally, allowedExtensions might be provided (e.g. [pdf, svg, jpg].).

If withData is set, picked files will have its byte data immediately available on memory as Uint8List which can be useful if you are picking it for server upload or similar. However, have in mind that enabling this on IO (iOS & Android) may result in out of memory issues if you allow multiple picks or pick huge files. Use withReadStream instead. Defaults to true on web, false otherwise.

If withReadStream is set, picked files will have its byte data available as a Stream<List<int>> which can be useful for uploading and processing large files. Defaults to false.

If you want to track picking status, for example, because some files may take some time to be cached (particularly those picked from cloud providers), you may want to set onFileLoading handler that will give you the current status of picking.

If allowCompression is set, it will allow media to apply the default OS compression. Defaults to true.

The result is wrapped in a FilePickerResult which contains helper getters with useful information regarding the picked List<PlatformFile>.

For more information, check the API documentation.

Returns null if aborted.

Implementation

Future<FilePickerResult?> pickFiles({
  FileType type = FileType.any,
  List<String>? allowedExtensions,
  Function(FilePickerStatus)? onFileLoading,
  bool allowCompression = true,
  bool allowMultiple = false,
  bool withData = false,
  bool withReadStream = false,
}) async =>
    throw UnimplementedError('pickFiles() has not been implemented.');