flutter 需要同时上传到后端服务器的 文件和 json

flutter 需要同时上传到后端服务器的 文件和 json,第1张

flutter 需要同时上传到后端服务器的 文件和 json

服务器 使用 springboot 借助

@RequestPart(value = "file", required = false) MultipartFile file, @RequestPart("material") TbVideo tbVideo

注解里的参数 必须和前段的参数一致;

@PostMapping("/uploadVideos")
    public Result insertVideos(@RequestPart(value = "file", required = false) MultipartFile file, @RequestPart("material") TbVideo tbVideo) {

    //业务逻辑---

}

flutter 端

  添加 权限   如果6.0 以上  需要动态权限  如果http  添加 

android:usesCleartextTraffic="true"
  
    
    
    

添加  文件 *** 作插件和dio

  dio: ^4.0.6
  path_provider: ^2.0.9
  Directory tempDir = await getTemporaryDirectory();
    String tempPath = tempDir.path+"/b.jpg";
    MultipartFile multipartFile = await MultipartFile.fromFile(tempPath,filename: "b.jpg" ,
contentType: MediaType.parse("image/jpeg")
);
    
    //json 数据上传
    Map map = Map();
     map["title"]="hello world";
    map["userid"]=12344555;
     map["content"]="sdsds";
    map["videopath"]="sdsds";
    map["title"]="hello world";
    map["avatar"]="sdsds";
    map["categoryid"]=33333;

    var encode = json.encode(map);
    MultipartFile multipartFiles = await MultipartFile.fromString(encode,contentType:MediaType.parse("application/json; charset=UTF-8") );
      // "material":map,
      FormData formData = FormData.fromMap({
        "material":multipartFiles, // material 服务器对应的名称
        "file": multipartFile,   //file  服务器对应的名称

      });




    new Dio().post("http://192.168.1.4:80/uploadVideos",data:formData ).then((value){
           print("--------${value.data.toString()}");
         });


  }

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/795135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存