1. 程式人生 > >Jquery不使用form表單非同步上傳檔案的方法

Jquery不使用form表單非同步上傳檔案的方法

 

 

現在的專案中需要使用到不重新整理頁面的方式實現上傳檔案,實現方法如下:

html程式碼:

 
  1. 檔案:<input id="file" type="file" name="file"/>

  2. <button id="upload">上傳檔案</button>

js程式碼:

 
  1. $(function () {

  2. $("#upload").click(function(){

  3. var formData = new FormData();

  4. formData.append('file', $('#file')[0].files[0]);

  5.  
  6. $.ajax({

  7. url: "http://127.0.0.1:8081/uploadFile/addUploadFileUrl",

  8. type: "POST",

  9. data: formData,

  10. /**

  11. *必須false才會自動加上正確的Content-Type

  12. */

  13. contentType: false,

  14. /**

  15. * 必須false才會避開jQuery對 formdata 的預設處理

  16. * XMLHttpRequest會對 formdata 進行正確的處理

  17. */

  18. processData: false,

  19. success: function (data) {

  20. alert("success");

  21.  
  22. },

  23. error: function () {

  24. alert("上傳失敗!");

  25.  
  26. }

  27. });

  28. })

  29. });

js中有對FormData物件的使用:

1.用一些鍵值對來模擬一系列表單控制元件:即把form中所有表單元素的name和value組裝成一個queryString

2.非同步上傳二進位制檔案