使用FormData提交文件与对象信息

1、我们使用FormData有时候不仅仅要传给后端文件,还需要传给后端对象信息。

使用FormData传对象是用key-value形式的,所以传对象不能传整个对象,要传属性,

后端接口用对象接收即可,因为可以将传来的属性自动封装到实体类中(前端传来的属性名称和实体类

的属性名称一定要一致,否则无法封装)。

2、还有当我们传的对象里面还有引用对象的时候,比如User类里面还有一个Depot类,我们就应该这样

formData.append(“depot.id”, this.formData.depot.id);

这样的话,就可以成功传给User类里的Depot类了

前端实体类数据格式:

formData: {
	    account:'',
	    depot:{id:'', name:''},
	    name:'',
	    password:'',
	    auth:''
	}

添加过程及提交

var data = new FormData();
data.append("account", this.formData.account);
if(""==this.formData.depot.id){
    this.formData.depot.id = 999;
}
data.append("depot.id", this.formData.depot.id);
data.append("name", this.formData.name);
data.append("password", this.formData.password);
data.append("auth", this.formData.auth);
data.append("image", this.img);

axios.post(url, data).then(function (response) {
    var res = response.data;
    if(res.success){
        obj.$message({
            type: 'success',
            message: '添加成功!'
        });
        vue.jump("user_list_page");
    }else {
        obj.$message.error({
            type: 'fail',
            message: res.msg
        });
    }
});

后端接口

@PostMapping("/add")
public Result add(User user, MultipartFile image, HttpServletRequest request){

}
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值