springboot中ajax上传附件和其他参数

实例页面如下:

<!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();
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章