Возможно, вы захотите попробовать пакет dio , это http-клиент, который поддерживает загрузку файлов и сохраняет его локально по заданному пути.
Вот пример кода (источник: Github Ямпавана )
Future downloadFile(String url) async {
Dio dio = Dio();
try {
var dir = await getApplicationDocumentsDirectory();
await dio.download(url, "${dir.path}/myFile.txt", onProgress: (rec, total) {
print("Rec: $rec , Total: $total");
});
} catch (e) {
print(e);
}
print("Download completed");
}