实例页面如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script> </head> <body> <form id="form1" action="" method="post" enctype="multipart/form-data"> 选择上传文件:<input type="file" name="file" id="file"/><br> <input type="button" value="ajax提交" id="ajaxSub"> </form> <script type="text/javascript" > //此对象用来封装其他参数 function ParamList(firstParam,secondParam,thirdParam) { this.firstParam = firstParam; this.secondParam = secondParam; this.thirdParam = thirdParam; }; //事件 $("#ajaxSub").click(function () { //存放对象参数的数组 var dataList = new Array(); var object = new ParamList("被申请人","男,","。"); dataList.push(object); var object1 = new ParamList("仲裁庭认为",",","案涉商品签约价3319"); dataList.push(object1); var object2 = new ParamList("商品名称",":","元;"); dataList.push(object2); var object3 = new ParamList("若被申请人","若被申请人","违约金额。"); dataList.push(object3); console.log(dataList); //创建一个FormData对象,用来封装所需参数 var myform = new FormData(); //获取form表单中的文件 myform.append('file', $('#file')[0].files[0]); //用户id myform.append('userId','1'); //用户名称 myform.append('userName','张三'); //将对象数组转化成json串传递给后台 myform.append("paramList",JSON.stringify( dataList )); //var fromData = $("#form1").serialize(); //发送ajax请求 $.ajax({ url:"http://192.168.34.132:8083/api/verdict", type:"post", data:myform, contentType: false, processData: false, success:function (obj) { console.log(obj) } }); }); </script> </body> </html>
下列为后台controller接收前台传递参数的部分代码,只要是从MultipartHttpServletRequest获取附件信息。
@RequestMapping(value = "/api/verdict") public JsonResult<String> grabWordFromVerdictPdf(@RequestParam(value = "userId", required = false) Integer userId, @RequestParam(value = "userName", required = false) String userName, @RequestParam(value = "paramList", required = false) String paramList, MultipartHttpServletRequest request) { Iterator<String> fileNames = request.getFileNames(); MultipartFile file = null; JsonResult<String> jsonResult = new JsonResult<String>(); while (fileNames.hasNext()) { String str = fileNames.next(); file = request.getFile(str); } if (file != null) { String fileName = file.getOriginalFilename(); String suffix = ""; if (fileName != null) { suffix = fileName.substring(fileName.indexOf("."), fileName.length()); } String localPath = uploadFileConfig.getLocalPath(); String interPath = uploadFileConfig.getInterPath(); }
}