文件/字段如下:
jsonData,
List[images],
MultipartFile,
使用 DIO 一次将所有这些字段/文件发送到服务器
解决了..参考https://github.com/flutterchina/dio#sending-formdata
多个文件上传
向FormData中添加多个文件有两种方式,唯一的区别是数组类型的上传key不同。</p>
FormData.fromMap({
"files": [
MultipartFile.fromFileSync("./example/upload.txt",
filename: "upload.txt"),
MultipartFile.fromFileSync("./example/upload.txt",
filename: "upload.txt"),
]
});
上传key最终变成了“files[]”,这是因为很多后端服务在获取文件数组的时候都会给key加一个中括号。如果你不想要“[]”,你应该如下创建FormData(不要使用FormData.fromMap):
var formData = FormData();
formData.files.addAll([
MapEntry(
"files",
MultipartFile.fromFileSync("./example/upload.txt",
filename: "upload.txt"),
),
MapEntry(
"files",
MultipartFile.fromFileSync("./example/upload.txt",
filename: "upload.txt"),
),
]);
来自dio的文件:
“通过 FormData 将多个文件上传到服务器:”
FormData.fromMap({
"name": "wendux",
"age": 25,
"file": await MultipartFile.fromFile("./text.txt",filename: "upload.txt"),
"files": [
await MultipartFile.fromFile("./text1.txt", filename: "text1.txt"),
await MultipartFile.fromFile("./text2.txt", filename: "text2.txt"),
]
});
response = await dio.post("/info", data: formData);
"files": [
await MultipartFile.fromFile("./text1.txt", filename: "text1.txt"),
await MultipartFile.fromFile("./text2.txt", filename: "text2.txt"),
]
尝试在“文件 []”中添加 []:es:
"files[]": [
await MultipartFile.fromFile("./text1.txt", filename: "text1.txt"),
await MultipartFile.fromFile("./text2.txt", filename: "text2.txt"),
]