如何 POST 多个文件,文件列表到服务器使用 DIO in flutter
How to POST multiple files, list of files to server using DIO in flutter
Files/fields 像 :
jsonData,
List[images],
MultipartFile,
使用 DIO
立即将所有这些 fields/files 发送到服务器
来自 dio 的文档:
"Uploading multiple files to server by 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);
解决..参考https://github.com/flutterchina/dio#sending-formdata
上传多个文件
将多个文件添加到FormData有两种方式,唯一的区别是数组类型上传key不同。
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"),
),
]);
"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"),
]
Files/fields 像 :
jsonData,
List[images],
MultipartFile,
使用 DIO
立即将所有这些 fields/files 发送到服务器来自 dio 的文档:
"Uploading multiple files to server by 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);
解决..参考https://github.com/flutterchina/dio#sending-formdata
上传多个文件
将多个文件添加到FormData有两种方式,唯一的区别是数组类型上传key不同。
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"),
),
]);
"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"),
]