#flutter
#трепетать
Вопрос:
У меня есть функция сохранения сетевого образа в файлы локального кэша, но у меня возникают проблемы при хранении файла списка, в который я загрузил Listlt;XFilegt;
. Вот моя функция загрузки:
Listlt;XFilegt;? imageFileList = []; Futurelt;Filegt; downloadImage(url, filename) async { var httpClient = HttpClient(); try { var request = await httpClient.getUrl(Uri.parse(url)); var response = await request.close(); var bytes = await consolidateHttpClientResponseBytes(response); final dir = await getTemporaryDirectory(); File file = File('${dir.path}/$filename'); await file.writeAsBytes(bytes); print('downloaded file path = ${file.path}'); return file; } catch (error) { print('download error'); return File(''); } }
есть ли какой-нибудь способ, чтобы я мог сохранить файл file
в список изображений как :
imageFileList!.add(file);
Комментарии:
1. Просто измените тип списка
File
на тип списка. В вашей ошибке четко указано , что данные вашего ответа относятся к типу файла, который не может быть присвоенXFile
типу.2. Мне нужен тип XFile, потому что я использовал ImagePicker.pickMultiImage() для выбора изображения из хранилища
3. итак, почему бы вам не конвертировать ваш XFile в файл , который вы получаете из хранилища телефона ypur…!! все будет легко для вас.
Ответ №1:
Измените тип своего списка:
из этого:
Listlt;XFilegt;? imageFileList = [];
к этому:
Listlt;Filegt;? imageFileList = []; final ImagePicker _picker = ImagePicker(); getImage() async { var images = await _picker.pickMultiImage(); images!.forEach((image) { setState(() { _imageFileList!.add(File(image.path)); }); }); }