Я использовал для выбора картинок multi_image_picker . Выгрузку на сервер реализовывал с помощью dio.
Future uploadRequestImages(List<File> images, [var fnIndicator]) async {
Dio dio = new Dio();
List<MultipartFile> _files = [];
//.............................................
for(int i = 0; i < images.length; i++) {
String _ext = path.extension(images[i].path).substring(1);
_files.add(
await MultipartFile.fromFile(
images[i].path,
filename: path.basename(images[i].path),
contentType: MediaType("image", _ext),
)
);
}
//.............................................
var response;
try {
response = await
dio.post(
API_URL,
data: FormData.fromMap({
"files": _files,
}),
onSendProgress: (int sent, int total) {
if(fnIndicator != null) fnIndicator((sent / total) * 100);
},
);
} catch (e) {
...
}
...
}