showFilePicker static method
Implementation
static Future<void> showFilePicker({
required final Function(List<FileData>) action,
final FileType fileType = FileType.any,
final bool allowMultiple = false,
final String? initialDirectory,
final String? dialogTitle,
final bool allowCompression = true,
final bool withReadStream = false,
final bool lockParentWindow = false,
final List<String>? allowedExtensions,
}) async {
try {
final FilePickerResult? result = await FilePicker.platform.pickFiles(
type: fileType,
allowMultiple: allowMultiple,
allowedExtensions: allowedExtensions,
);
if (result == null) return;
final List<FileData> files = await Future.wait(
result.files.map((PlatformFile file) async {
if (kIsWeb) {
return FileData(
bytes: file.bytes,
extension: file.extension,
);
} else {
return FileData(
path: file.path,
bytes: await File(file.path!).readAsBytes(),
extension: file.extension ?? path.extension(file.path!),
);
}
}),
);
action(files);
} catch (e) {
debugPrint("File picker error: $e");
action(<FileData>[]);
}
}