Хранение изображений на сервере может быть очень дорогим, так как размеры файлов очень велики по сравнению с обычными данными. Так что, если вам не НУЖНО хранить их на сервере, не надо.
Хранить изображения локально довольно просто. Вы захотите использовать пакет path_provider https://pub.dev/packages/path_provider. Я опубликую функцию, которую использую в моем текущем проекте, которая делает это. Вы увидите, это довольно просто.
Примечание. В моем коде я беру файл со своего сервера. Очевидно, оставьте эту часть, если вы получаете изображения из другого источника.
Future<File> createFileOfPdfUrl(String fileLocation, String name) async {
final url = Helper.baseUrl + "Files/Newsletter/" + fileLocation;
final filename = url.substring(url.lastIndexOf("/") + 1);
var request = await HttpClient().getUrl(Uri.parse(url));
var response = await request.close();
var bytes = await consolidateHttpClientResponseBytes(response);
String dir = (await pathProvider.getApplicationDocumentsDirectory()).path;
File file = new File('$dir/$filename');
await file.writeAsBytes(bytes);
return file;
}