Flutter中使用MultipartRequest按指定结构上传图片
用http包实现符合指定结构的文件上传
当然可以实现,关键是要正确设置文件字段的名称,匹配目标接口要求的attachments.*.file格式。
目标接口的结构要求:
description:可选字符串attachments:可选数组,数组内每个元素必须包含必填的file文件字段
你当前的代码把所有文件都命名为file,不符合attachments.*.file的嵌套结构要求。只需修改文件字段的命名规则,就能让http包生成符合要求的请求结构。
修改后的代码示例:
if (json != null) { request.fields.addAll(json); } for (var index = 0; index < filesPath.length; index++) { request.files.add(await http.MultipartFile.fromPath( 'attachments[$index].file', filesPath[index], )); }
说明:
- 循环时通过索引
index构建字段名attachments[$index].file,每个文件会对应到attachments数组的对应位置,完全匹配接口要求的attachments.*.file规则 description等其他字段可正常通过request.fields添加,和原有逻辑一致
这样发送的Multipart请求就能满足目标接口的参数校验规则了。
内容的提问来源于stack exchange,提问作者micael cunha
相关产品推荐
相关产品推荐

