javascript之分片上傳,斷點續傳的實際項目實現詳解

在本篇文章裏小編給大家整理了關於javascript之分片上傳,斷點續傳的實際項目實現的詳細內容,有需要的朋友們學習下。

總所周知,上傳大文件時由於各種原因突然中斷,然後整個文件需要從頭開始上傳,這種情況非常令人抓狂??,那麼怎樣纔可以避免這種尷尬的情況呢?分片上傳或許可以搞定這個痛點

原理:文件上傳就是把文件切割成一個個小小的塊,然後塊逐一上傳

後臺約定接口:

1.getRestChunkInfo 獲取當前文件的上傳情況

輸入:{fileName, fileSize, md5, token}

輸出:{chunk_list, chunk_size, chunk_count}

chunk_list是一個數組,未上傳塊的編號等信息,

chunk_size:分片的大小,

chunk_count:分片的總次數,

2.uploadAPI

輸入:FormData對象,塊的具體信息

{file_name, file_size, file_md5, token}

輸出:一個對象,包含true/false

步驟:

1.獲取需要上傳的文件,用md5算法做消息摘要,就是md5碼作爲文件的唯一標識

2.將md5碼、文件名、文件大小、token值作爲輸入參數傳給後臺第一個API

3.接口返回chunk_list等參數,用chunk_list.shift取分片繼續調用第二個接口,一片一片上傳文件塊

4.所有文件上傳完成後,爲了防止中間有出錯的分片,在次請求第一個接口,如果chunk_list的length爲0,則說明所有分片上傳成功

完成上面的步驟後,後臺在確認所有的分片上傳完成後,就可以進行文件合併了。

圖解:

其中token值不是必傳參數,僅僅是系統爲了防止CSRF攻擊,出於安全考慮的。Note:安全考慮還有加簽驗籤功能

難點:

1.如何切片,使用Blob對象的slice方法  blob.slice(startByte,endByte);

2.當前文件已上傳的片數,然後保證我從哪一片開始上傳

以上就是本次介紹的關於javascript之分片上傳,斷點續傳的實際項目實現的全部知識點內容,有需要的朋友們可以學習下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章