1.后端给我个一接口,哎嘿?!我是蒙蔽的,有文件还有json

2.怎么搞都不通 加请求头么?携带参数么?都不对.....

3.参数被转换了,后端也会报错,Current request is not a nultipart request 当前请求不是非部分请求


4.搞了半天才明白什么意思
1).【前端如何将文件和对象作为参数同时传到后台呢?】
2). FormData对象是为序列化表以及创建与表单格式相同的数据提供便利。可以通过formdata添加数据。它是以key value形式的键值对。Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。 通常可以用于声音、视频等多媒体文件的存储。
3).
async handleSuccess2(file) {
console.log(file, "upload");
let formData = new FormData();
formData.append('file', file.raw);
let req = {
salesManId: this.salesManId
}
const blob = new Blob([JSON.stringify(req)], { type: 'application/json;charset=utf-8' });
formData.append('req', blob);
const res = await this.$http.post("highSea/importCustomer", formData)
console.log(res);
if(res.code==200){
}
},
4.附后端代码
@PostMapping("/saveFile")
public AjaxResult saveFile(@RequestPart @Validated StudentDto dto, @RequestParam(required = false, value = "file") MultipartFile file) {
try {
fileService.saveFile(dto, file);
return AjaxResult.success();
} catch (Exception e) {
log.info("保存文件失败, " + e.getMessage());
return AjaxResult.error();
}
}
```