1.描述项目中使用form表单配合ajax同时提交文件和其他参数。具体实现请看代码。2.前端代码form表单部分前台提交的方式是表单表单方式,提交内容包括常用参数和文件。<form ac
项目中使用form表单配合ajax同时提交文件和其他参数。具体实现请看代码。
2.前端代码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值为 equipmentTypeFormformData.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); }