Флаттер «Файл» не может быть назначен «XFile»

#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));  });  });  }