filePicker static method
dynamic
filePicker({})
function file picker for pick any file and save to temporary cache directory
Implementation
static filePicker(
{required FileData fileData,
required Function(FileData fileData) onSelected,
Function(String message, int messageCode)? onCancel,
int? maxFileSizeInMb,
List<String>? allowedExtensions}) async {
List<String>? extensions = allowedExtensions
?.map((e) => Files.getFileExtension(e, withDot: false))
.toList();
FilePickerResult? result = await FilePicker.platform.pickFiles(
type: (allowedExtensions ?? []).isNotEmpty
? FileType.custom
: FileType.any,
allowedExtensions: extensions);
if (result != null && result.files.single.path != null) {
if (maxFileSizeInMb != null &&
Files.mb(result.files.single.size) > maxFileSizeInMb) {
dev.log(
"[${Files._mcFPCForSize}] ${Files._fileMoreThanMB(maxFileSizeInMb)}");
if (onCancel != null) {
onCancel(Files._fileMoreThanMB(maxFileSizeInMb), Files._mcFPCForSize);
}
return;
}
FileData fileData = FileData(
hasFile: true,
fileName: result.files.single.name,
filePath: result.files.single.path!,
fileMimeType: Files.getMimeType(result.files.single.path!),
path: result.files.single.path!);
onSelected(fileData);
} else {
dev.log("[${Files._mcFPCForCancel}] ${Files._filePickCancel}");
if (onCancel != null) {
onCancel(Files._filePickCancel, Files._mcFPCForCancel);
}
return;
}
}