XMLHttpRequest 分割上傳檔案顯示進度

2021-09-02 16:11:10 字數 1341 閱讀 7073

//file選擇,觸發定時器函式

function upload(){

clock = window.setinterval(selectfile,1000);

//定時1s

//閉包函式

var selectfile = (function(){

const length = 1*1024*1024;//每次擷取的長度

var sta = 0;                //從零處開始擷取

var end = sta +length;

var flag = false;    //表示上一塊是否傳送完畢

var blob = null;

var fd = null;

var percent = 0;

//匿名函式

return(function (){

if(flag == true){    //是否正在上傳

return;

flag = true;

var mov = document.getelementbyid('pdffile').files[0];/* blob物件 */

var proid=document.getelementbyid('projectid').value;

fd = new formdata();

blob = mov.slice(sta,end);

up(fd);

//如果sta > mov.size 就結束

if(sta >= mov.size){

clearinterval(clock);    //清除定時

return ;

sta = end;

end = sta + length;

flag = false;    //上傳完畢

percent = 100 * end /mov.size ;

percent = percent >= 100 ? 100 : percent;

percent=percent.tofixed(2);

var son =  document.getelementbyid('son');  

son.innerhtml = percent+"%";  

son.style.width=percent+"%";  

function up(fd){

xhr.open("post","<?= site_aurl($tablefunc.'/upload') ?>",false);  

xhr.send(fd);

XMLHttpRequest 物件詳解

http 請求的狀態.當乙個 xmlhttprequest 初次建立時,這個屬性的值從 0 開始,直到接收到完整的 http 響應,這個值增加到 4。狀態名稱描述0 uninitialized 初始化狀態。xmlhttprequest 物件已建立或已被 abort 方法重置。1open open 方...

Ajax核心 XMLHttpRequest物件

xmlhttprequest 物件是ajax功能的核心,學習xmlhttprequest物件就先從建立xmlhttprequest 物件開始,了解在不同的瀏覽器中建立xmlhttprequest 物件使用不同的方法 以前只是聽說有些瀏覽器不太支援ajax,後來瀏覽器逐漸的相容了這個瀏覽器,現在來看明...

建立xmlhttprequest物件

ie瀏覽器使用activeobject,而其它的瀏覽器使用名為xmlhttprequest內建物件。function createxmlhttprequest catch e catch e catch e 宣告乙個儲存 xmlhttprequest 物件的 xmlhttp 變數。然後使用 xmlh...