springmvc中Form表單檔案上傳使用ajax提交
上傳檔案這塊坑真是不少,耽誤了有幾個小時的時間,現在簡單總結一下;
首先springmvc的核心xml中配置下MultipartResolver:
<!-- 配置 MultipartResolver --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <property name="maxUploadSize" value="1024000"></property> </bean>
前端頁面form表單如下
<form id="formId">
<input type="hidden" id="userId" name="userId"> <input type="text" id="userNameId" name="userName">
<input type="file" id="userNameId" name="userLogo" multiple="multiple">
</form>
<div onclick="saveUser();">儲存</div>
js:
function saveUser(){
var formdata = new FormData($("#formId")[0]);
$.ajax({ type: 'POST', url: "/user/saveUser", data: formdata , dataType: 'JSON', contentType: false, processData:false, success: function(data) { //操作成功後的操作 }, error: function(data) { } });
}
後端controller中儲存方法:
@RequestMapping(value = "saveUser",method=RequestMethod.POST) @ResponseBody public String saveTbPolicyDoc(HttpServletRequest request,User user ,@RequestParam(name="userLogo",required=true) MultipartFile userLogo) { try {
//使用commons工具或者自己編寫檔案上傳方法上傳檔案
}catch (Exception e) { e.printStackTrace(); }
return null;
}