pickAndUploadMultipleFiles method
Future<List<TransferTask> >
pickAndUploadMultipleFiles(
- Uri destination, {
- String fieldName = 'file',
- String method = 'POST',
- List<
String> ? allowedExtensions, - List<
String> ? allowedMimeTypes, - UploadSourcePolicy sourcePolicy = UploadSourcePolicy.copyToManagedStorage,
- bool showNotification = true,
- NotificationOpenType openFromNotification = NotificationOpenType.open,
- bool showLiveActivity = false,
- LiveActivityStyle liveActivityStyle = LiveActivityStyle.system,
- bool allowPauseFromLiveActivity = true,
- bool allowCancelFromLiveActivity = true,
- TransferNotification? notification,
- Map<
String, String> headers = const {}, - NetworkPolicy? networkPolicy,
- RetryPolicy? retryPolicy,
- Checksum? checksum,
- String? expectedChecksum,
Prompts the user to select one or more files using the system file picker and enqueues multipart uploads for all selected files.
Uses UploadSourcePolicy.copyToManagedStorage by default so that staged files survive temporary cache eviction. Returns an empty list if the user cancelled the picker.
Implementation
Future<List<TransferTask>> pickAndUploadMultipleFiles(
Uri destination, {
String fieldName = 'file',
String method = 'POST',
List<String>? allowedExtensions,
List<String>? allowedMimeTypes,
UploadSourcePolicy sourcePolicy = UploadSourcePolicy.copyToManagedStorage,
bool showNotification = true,
NotificationOpenType openFromNotification = NotificationOpenType.open,
bool showLiveActivity = false,
LiveActivityStyle liveActivityStyle = LiveActivityStyle.system,
bool allowPauseFromLiveActivity = true,
bool allowCancelFromLiveActivity = true,
TransferNotification? notification,
Map<String, String> headers = const {},
NetworkPolicy? networkPolicy,
RetryPolicy? retryPolicy,
Checksum? checksum,
String? expectedChecksum,
}) async {
final pickedFiles = await pickFiles(
allowedExtensions: allowedExtensions,
allowedMimeTypes: allowedMimeTypes,
allowMultiple: true,
);
if (pickedFiles.isEmpty) return const [];
final tasks = <TransferTask>[];
for (final picked in pickedFiles) {
final task = await upload(
destination,
sourcePath: picked.path,
fieldName: fieldName,
method: method,
sourcePolicy: sourcePolicy,
showNotification: showNotification,
openFromNotification: openFromNotification,
showLiveActivity: showLiveActivity,
liveActivityStyle: liveActivityStyle,
allowPauseFromLiveActivity: allowPauseFromLiveActivity,
allowCancelFromLiveActivity: allowCancelFromLiveActivity,
notification: notification,
headers: headers,
networkPolicy: networkPolicy,
retryPolicy: retryPolicy,
checksum: checksum,
expectedChecksum: expectedChecksum,
);
tasks.add(task);
}
return tasks;
}