經過jQuery Ajax使用FormData對象上傳文件 - 注意事項

$.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對象又該怎麼作呢? 服務器

相關文章
相關標籤/搜索