如何在Flutter中使用MultipartFile将资产图像发布到服务器

时间:2020-03-25 13:00:47

标签: flutter

我正在使用MultipartFile将我的图像文件发送到服务器。我知道当我使用ImagePicker

File ImageFile;

  _openCamera() async {
    var picture = await ImagePicker.pickImage(source: ImageSource.camera);
    this.setState(() {
      imageFile = picture;
    });
  }

然后像这样使用MultipartFile

request.files.add(http.MultipartFile.fromBytes('img', ImageFile.readAsBytesSync(), filename: 'photo.jpg'));

但是我的问题是我希望我的图像来自我的资产,就像这里Image.asset('images/photo1.png');一样。我有错

A value of type 'Image' can't be assigned to a variable of type 'File'.
Try changing the type of the variable, or casting the right-hand type to 'File'.

所以,我的问题是如何使用MultipartFile方法发送图片?

1 个答案:

答案 0 :(得分:1)

首先,获取资产作为字节列表:

  var bytes = (await rootBundle.load('images/photo1.png')).buffer.asUint8List();

然后在名为MultipartFile的构造函数中使用它:

  var mpFile = http.MultipartFile.fromBytes('img', bytes, filename: 'photo.jpg');