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文件进行源码
https://blog.youkuaiyun.com/a740220116/article/details/52206732