Flutter Dio3.x版本上传图片提示 type '_File' is not a subtype of type 'String'

发布于 7 天前 作者 phonegap100 11 次浏览 来自 分享

Flutter Dio 3.x版本上传图片提示 type ‘_File’ is not a subtype of type 'String’如何解决呢?

其实主要原因是:dio 3.0.0为了支持Flutter Web,需要进行较大重构,因此无法直接兼容2.1.x


 /*拍照*/
  _takePhoto() async {
    var image =
        await ImagePicker.pickImage(source: ImageSource.camera, maxWidth: 400);

    setState(() {
      this._image = image;
    });

    this._uploadImage(image);
  }

 /*上传图片*/
 
  _uploadImage(File _imageDir) async {
    
    //注意:dio3.x版本为了兼容web做了一些修改,上传图片的时候需要把File类型转换成String类型
   
    var fileDir=_imageDir.path;       

    FormData formData = FormData.fromMap({
      "name": "zhangsna 6666666666",
      "age": 20,
      "sex": "男",    
      "file":  await MultipartFile.fromFile(fileDir, filename: "xxx.jpg")     
    });

    var response =
        await Dio().post("http://jd.itying.com/imgupload", data: formData);

    print(response);
  }
回到顶部