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()}");
});
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)