$.ajax({ url: '/upload', type: 'POST', cache: false, data: new FormData($('#uploadForm')[0]), processData: false, contentType: false }).done(function(res) { }).fail(function(res) {});
這裏要注意幾點:ajax
processData
設置爲false
。由於data
值是FormData
對象,不須要對數據作處理。<form>
標籤添加enctype="multipart/form-data"
屬性。cache
設置爲false
,上傳文件不須要緩存。contentType
設置爲false
。由於是由<form>
表單構造的FormData
對象,且已經聲明瞭屬性enctype="multipart/form-data"
,因此這裏設置爲false。上傳後,服務器端代碼須要使用從查詢參數名爲file
獲取文件輸入流對象,由於<input>
中聲明的是name="file"
。緩存
若是不是用<form>
表單構造FormData
對象又該怎麼作呢? 服務器