1. 程式人生 > >通過ajax上傳multipart檔案

通過ajax上傳multipart檔案

使用FormData物件,是可以使用一系列的鍵值對來模擬一個完整的表單,然後使用XMLHttpRequest傳送這個"表單"。

html:

<form id="uploadForm" enctype="multipart/form-data">
    <input id="file" type="file" name="file"/>
    <button id="upload" type="button">upload</button>
</form>
javascript:
$.ajax({
    url: "/upload",
    type: 'POST',
    cache: false,
    data: new FormData($("#uploadForm")[0]),
    processData: false,
    contentType: false,
    success: function (result) {
    },
    error: function (err) {
    }
});
這裡要注意幾點:
  • processData設定為false。因為data值是FormData物件,不需要對資料做處理。
  • <form>標籤新增enctype="multipart/form-data"屬性。
  • cache設定為false,上傳檔案不需要快取。
  • contentType設定為false。因為是由<form>表單構造的FormData物件,且已經聲明瞭屬性enctype="multipart/form-data",所以這裡設定為false。