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

18 篇文章 0 订阅

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

我自己的公网api

http://101.43.196.94:9300/uploadVideo

字段 类型
file文件
materialjson

服务器 使用 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"
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

添加  文件操作插件和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<String ,dynamic> 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()}");
         });


  }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值