1. 程式人生 > >使用FormData對包含檔案型別的form表單進行非同步提交(檔案上傳)並配置回撥

使用FormData對包含檔案型別的form表單進行非同步提交(檔案上傳)並配置回撥

直接使用form表單的submit提交按鈕進行表單提交到action,這個是非非同步的,不但在action返回時需要重新整理頁面或跳轉至另外一個頁面,也不能配置回撥函式對返回資料進行某些處理。

其次,如果使用表單的serialize()方法進行ajax提交,則只能傳遞簡單型別資料,但是對於檔案型別file是不能傳至後臺的,網上查詢資料後發現FormDate物件。可以非同步提交檔案並配置回撥函式。

程式碼為:

function doUpload() {
     var formData = new FormData($("#uploadForm"));
     $.ajax({
          url: 'fileOperationAction!upload.action' ,
          type: 'POST',
          data: formData,
          async: false,
          cache: false,
          contentType: false,
          processData: false,
          success: function (data) {
              alert(data);
          },
          error: function (data) {
              alert(data);
          }
     });
}

參考檔案:http://yunzhu.iteye.com/blog/2177923