blob物件介紹及相關應用

2021-09-29 05:15:57 字數 2742 閱讀 8741

後面有時間總結一下react相關知識和效能優化的東西,這些東西總結起來要花些時間。一直沒有時間總結。今天的這個問題也是專案中用到的,之前沒有寫過,寫在部落格中,有需要的自取。主要是js流檔案blob介紹及相關應用。

var blob = new blob(dataarr:array, opt:);
dataarray:陣列,包含了要新增到blob物件中的資料,資料可以是任意多個arraybuffer,arraybufferview, blob,或者 domstring物件。

opt:物件,用於設定blob物件的屬性(如:mime型別)

除了這些,我再補充幾個

1、建立乙個裝填domstring物件的blob物件

let haorooms ="hello haorooms

";let blob = new blob([haorooms],)

blob

//blob(25)

2、建立乙個裝填arraybuffer物件的blob物件

let haorooms =new arraybuffer(8);

let blob = new blob([haorooms],)

blob

// 輸出:blob(8)

3、blob.slice()

blob.slice(start:number, end:number, contenttype:string)

start:開始索引,預設為0

end:擷取結束索引(不包括end)

contenttype:新blob的mime型別,預設為空字串

例子:

let blob = new blob(['haorooms ceshi duixiadasdadadad'],)

let b2 = blob.slice(0,5,'text/plain')

b2blob(5)

4、canvas.toblob()

var canvas = document.getelementbyid("canvas");

canvas.toblob(function(blob));

預覽canvas

1、通過url顯示

我們上傳檔案預覽,一般都是預覽blob物件路徑。 img的src屬性及background的url屬性,都可以通過接收的網路位址或base64來顯示,同樣的,我們也可以把轉化為blob物件,生成url(url.createobjecturl(blob)),來顯示。

this.$http.get('請求位址', ).then(response => .xls`

anchor.click()

window.url.revokeobjecturl(data)

})

3、檔案分片上傳

通過blob.slice方法,可以將大檔案分片,輪循向後台提交各檔案片段,即可實現檔案的分片上傳。

思路如下:

獲取要上傳檔案的file物件,根據chunk(每片大小)對檔案進行分片

通過post方**循上傳每片檔案,其中url中拼接querystring用於描述當前上傳的檔案資訊;post body中存放本次要上傳的二進位制資料片段

介面每次返回offset,用於執行下次上傳

下面是分片上傳的簡單實現:

initupload();

//初始化上傳

function initupload() ;

var chunks = ;

if (!!file)

// 採用post方法上傳檔案

// url query上拼接以下引數,用於記錄上傳偏移

// post body中存放本次要上傳的二進位制資料

query =

upload(chunks, query, successperupload);}}

}// 執行上傳

//獲取post body中二進位制資料

var index = math.floor(query.nextoffset / query.datasize);

getfilebinary(chunks[index], function (binary) else

});xhr.onreadystatechange = function (e)

if (typeof cb === "function") }}

}}// 每片上傳成功後執行

function successperupload(resp, chunks, query) else

}// 獲取檔案二進位制資料

function getfilebinary(file, cb)

}}

previous:

Ansible playbook介紹及應用

ansible 系統由控制主機對被管節點的操作方式可分為兩類,即adhoc和playbook 使用單個模組,支援批量執行單條命令。ad hoc 命令是一種可以快速輸入的命令,而且不需要儲存起來的命令。就相當於bash中的一句話shell。ansible主要管理方式,也是ansible功能強大的關鍵所...

Nginx介紹及相關命令

nginx engine x 是乙個高效能的http和反向 web伺服器,同時也提供了imap pop3 smtp服務。nginx是由伊戈爾 賽索耶夫為俄羅斯訪問量第二的rambler.ru站點 俄文 開發的,第乙個公開版本0.1.0發布於2004年10月4日。其將源 以類bsd許可證的形式發布,因...

ubuntu terminal 介紹及相關命令

ubuntu的terminal windows鍵 t eg1 eg2 linux嚴格區分大小寫 1 cd 進入根目錄 2 cd 目錄名 進入指定目錄 3 cd 或者 cd 進入當前使用者的主目錄 注 常見目錄表示方法 根目錄 當前目錄或者本目錄 當前目錄的上級目錄 目錄名1 根目錄下的目錄名1 目錄...