showFilePicker static method
Implementation
static Future<List<FileData>> showFilePicker({
Function(List<FileData>)? action,
FileType fileType = FileType.any,
bool allowMultiple = false,
List<String>? allowedExtensions,
UCropOptions? crop,
}) async {
try {
final FileType type = allowedExtensions != null && allowedExtensions.isNotEmpty ? FileType.custom : (fileType == FileType.custom ? FileType.any : fileType);
if (allowMultiple) {
final List<PlatformFile> list = await FilePicker.pickFiles(type: type, allowedExtensions: allowedExtensions);
if (list.isNullOrEmpty()) {
action?.call(<FileData>[]);
return <FileData>[];
}
final List<FileData> files = await _collect(list.map(_fromPlatformFile), crop);
action?.call(files);
return files;
} else {
final PlatformFile? platformFile = await FilePicker.pickFile(type: type, allowedExtensions: allowedExtensions);
if (platformFile == null) {
action?.call(<FileData>[]);
return <FileData>[];
}
final List<FileData> files = await _collect(<Future<FileData>>[_fromPlatformFile(platformFile)], crop);
action?.call(files);
return files;
}
} catch (e) {
action?.call(<FileData>[]);
return <FileData>[];
}
}