1. 程式人生 > >springmvc中Form表單檔案上傳使用ajax提交

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;  

}