Flutter“文件”无法分配给“XFile”

Naz*_*zar 5 flutter

我有将网络图像保存到本地缓存文件的功能,但是在将下载的列表文件存储到List<XFile>. 这是我的下载功能:

List<XFile>? imageFileList = [];
Future<File> 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('');
    }
  }
Run Code Online (Sandbox Code Playgroud)

有什么方法可以将fileimageFileList 保存为:

imageFileList!.add(file);
Run Code Online (Sandbox Code Playgroud)

小智 11

将文件转换为 XFile:

XFile file = new XFile(file.path);


Shr*_*rma 3

更改您的列表类型:

由此:

List<XFile>? imageFileList = [];
Run Code Online (Sandbox Code Playgroud)

对此:

List<File>? imageFileList = [];

final ImagePicker _picker = ImagePicker();

 getImage() async {
   var images = await _picker.pickMultiImage();
   images!.forEach((image) {
     setState(() {
       _imageFileList!.add(File(image.path));
     });
   });
 }
Run Code Online (Sandbox Code Playgroud)