亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

FormData+Ajax怎么實現上傳進度監控

發布時間:2021-05-18 11:45:44 來源:億速云 閱讀:267 作者:小新 欄目:web開發

小編給大家分享一下FormData+Ajax怎么實現上傳進度監控,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

什么是FormData?

FormData對象可以組裝一組用 XMLHttpRequest發送請求的鍵/值對。它可以更靈活方便的發送表單數據,因為可以獨立于表單使用。如果你把表單的編碼類型設置為multipart/form-data ,則通過FormData傳輸的數據格式和表單通過submit() 方法傳輸的數據格式相同;

如何創建一個FormData對象

你可以自己創建一個FormData對象,然后通過調用它的append()方法添加字段,就像這樣:

//實例化一個formData對象
var formData = new FormData();
formData.append("username", "Groucho");
formData.append("userid", 123456); // 數字 123456 會被立即轉換成字符串 "123456"
// HTML上的 文件類型input[type=file]的文件框,由用戶選擇
formData.append("userfile", fileInputElement.files[0]);
// JavaScript file-like 對象
var content = '<a id="a"><b id="b">hey!</b></a>'; // 新文件的正文...
var blob = new Blob([content], { type: "text/xml"});
formData.append("webmasterfile", blob);

注意:字段 “userfile” 和 “webmasterfile” 都包含一個文件. 字段 “userid” 是數字類型,它將被FormData.append()方法轉換成字符串類型(FormData 對象的字段類型可以是 Blob, File, 或者 string: 如果它的字段類型不是Blob也不是File,則會被轉換成字符串類型。

使用jQuery的Ajax方法發送FormData數據

//記錄當前時間
var time=new Date().getTime();
//記錄當前進度
var percentage =null;
//記錄當前上傳速度
var velocity=null;
//記錄已上傳文件字節大小
var loaded=0;
$.ajax({
 url: 'Url',
 type: "POST",
 data: formData,
 contentType: false, // 必須 不設置內容類型
 processData: false, // 必須 不處理數據
 xhr: function xhr() {
  //獲取原生的xhr對象
  var xhr = $.ajaxSettings.xhr();
  if (xhr.upload) {
   //添加 progress 事件監聽
   xhr.upload.addEventListener('progress', function (e) {
    var nowDate = new Date().getTime();
    //每一秒刷新一次狀態
    if (nowDate - time >= 1000) {
     //已上傳文件字節數/總字節數
     percentage = parseInt(e.loaded / e.total * 100);
     //當前已傳大小(字節數)-一秒前已傳文件大小(字節數)
     velocity = (e.loaded - loaded) / 1024;
     if (percentage >= 99) {
      $(".hintText").html('服務端正在解析,請稍后');
     } else {
      //修改上次記錄時間及數據大小
      time = nowDate;
      loaded = e.loaded;
     }
    } else {
     return;
    }
   }, false);
  }
  return xhr;
 },
 success: function success(response) {
  //成功回調   
 },
 error: function error(error) {
  //失敗回調    
 }
});

看完了這篇文章,相信你對“FormData+Ajax怎么實現上傳進度監控”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绍兴县| 根河市| 江门市| 弋阳县| 伊金霍洛旗| 防城港市| 安吉县| 章丘市| 巴彦淖尔市| 伊宁市| 开江县| 安泽县| 龙陵县| 互助| 南宫市| 永丰县| 分宜县| 万源市| 若羌县| 闵行区| 尚志市| 台安县| 曲阜市| 玉林市| 竹溪县| 霍林郭勒市| 岳西县| 石景山区| 什邡市| 东兰县| 正蓝旗| 铜梁县| 顺平县| 雷州市| 靖边县| 台安县| 马龙县| 房山区| 青州市| 珠海市| 米脂县|