1.说明
项目中使用form表单配合ajax同时提交文件和其他的参数,具体实现请看代码
2.前端代码
- form表单部分
前台提交的是方式是form表单方式,提交内容包括普通的参数和文件
<form action="" class="form-horizontal " id="equipmenttypeform" enctype=” multipart/form-data”/>
<input type="text" class="form-control" id="manufacturer" name="manufacturer">
<input type="text" class="form-control" maxlength="20" id="equipmenttypenm" name="equipmenttypenm" placeholder="请输入设备类别名称">
<a href="javascript:filechange();" data-item="import" class="btn btn-primary btn-xs m-5"><i class="fa fa-eye"></i>导入</a><span id="importname"></span>
<input type="file" id="fielupload" name="file" style="display: none" onchange="importdffile()" />
</from>
2.ajax
var formdata = new formdata(); //需要用到formdata
formdata.append('file',$("#fielupload")[0].files[0]); //添加选择的文件 key值为file
//把from表单的参数序列化 转换成json key值为 equipmenttypeform
formdata.append('equipmenttypeform',json.stringify($('#equipmenttypeform').serializeobject()))
$.ajax({
type : "post",
url : "aaa.ajax",//自己的接口地址
data :formdata,
datatype : "json",
cache: false,
async:false,
processdata: false,
contenttype: false,//必须添加
success : function(data) {
if(data.success){
//成功之后执行的代码
}else{
//失败之后的代码
}
}
});
3.后端代码
@responsebody
@requestmapping(value = "/aaa.ajax",method = requestmethod.post)
public string save(@requestparam(value="file") multipartfile file,httpservletrequest reuqest) {
//拿到json 转换成我们需要的对象
equipmenttypeform equipmenttypeform = jsonobject.parseobject(reuqest.getparameter("equipmenttypeform"), equipmenttypeform.class);
system.out.println();
system.out.println(file);
}