1. 程式人生 > >ajaxfileupload檔案上傳帶引數,json序列化到後臺!

ajaxfileupload檔案上傳帶引數,json序列化到後臺!

ajaxfileupload方法傳檔案帶上json資料,到controller這麼都是接受到"{"這個符號.

方法一、自己寫的方法

html

var f2= {                 "a" : "123",                 "b" : policyArticleType,                 "c" : $("#policyTitle").val(),                 "d" : $("#policySource").val(),                 "e" : $("#policyDate").val()             };     var f3=JSON.stringify(f2);     f3=f3.replace(new RegExp('"',"gm"),"'");

$.ajaxFileUpload({             fileElementId : 'policyArticleAddress', //需要上傳的檔案域的ID,即<input type="file">的ID。             url : ' ${contextpath}/admin/zcfg/upload', //後臺方法的路徑             dataType : 'json', //伺服器返回的資料型別。可以為xml,script,json,html。如果不填寫,jQuery會自動判斷。             secureuri : false, //是否啟用安全提交,預設為false。             data:{"obj":f3},             //async : true, //是否是非同步             success : function(data) { //提交成功後自動執行的處理函式,引數data就是伺服器返回的資料。                 //console.log(data.message);                 policyArticleAddress1 = data.message;

            }         });

後臺接收

// 上傳檔案     @RequestMapping(value = "/upload")     @ResponseBody     public Map<String, Object> upload(@RequestParam("file") CommonsMultipartFile uploadFile,@RequestParam("obj")String obj,HttpServletRequest request) throws Exception {         obj=obj.replaceAll("\'", "\"");         PolicyTableModel model2=JSON.parseObject(obj,PolicyTableModel.class);         if (!uploadFile.isEmpty()) {           String oriName = uploadFile.getOriginalFilename();         String split[] = oriName.split("\\.");         String newName = split[0] + "_" + new Date().getTime()  + "." + split[1];         }else{             res.put("message", "請先選擇檔案,再上傳!");             return res;             }         return res;     }

方法二、轉載修改 ajaxfileupload檔案進行原始碼