showFilePicker static method
void
showFilePicker({})
Implementation
static void showFilePicker({
required final Function(List<FileData> file) 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 {
final FilePickerResult? result = await FilePicker.platform.pickFiles(
type: fileType,
dialogTitle: dialogTitle,
initialDirectory: initialDirectory,
allowCompression: allowCompression,
withReadStream: withReadStream,
lockParentWindow: lockParentWindow,
allowMultiple: allowMultiple,
allowedExtensions: allowedExtensions,
);
final List<FileData> files = <FileData>[];
if (result != null) {
if (allowMultiple) {
result.files.forEach(
(final PlatformFile i) async {
files.add(
FileData(
path: UApp.isWeb ? null : i.path,
bytes: i.bytes,
extension: ".${i.extension}",
jsonDetail: MediaJsonDetail(title: i.name.split(".").first),
),
);
},
);
action(files);
} else
action(
<FileData>[
FileData(
path: result.files.single.path,
bytes: result.files.single.bytes,
extension: result.files.single.extension,
jsonDetail: MediaJsonDetail(title: result.files[0].name),
),
],
);
}
}