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

溫馨提示×

溫馨提示×

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

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

HTML5中怎么實現文件斷點續傳功能

發布時間:2021-08-09 17:19:26 來源:億速云 閱讀:106 作者:Leah 欄目:開發技術

HTML5中怎么實現文件斷點續傳功能,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

斷點續傳原理

目前比較常用的斷點續傳的方法有兩種,一種是通過websocket接口進行文件上傳,另一種是通過ajax,兩種方法各有千秋,雖然websocket聽起來比較高端些,但是除了用了不同的協議外其他的算法基本上都是很相似的,并且服務端要開啟ws接口,這里用相對方便的ajax來說明斷點上傳的思路。

說來說去,斷點續傳最核心的內容就是把文件“切片”然后再一片一片的傳給服務器,但是這看似簡單的上傳過程卻有著無數的坑。

首先是文件的識別,一個文件被分成了若干份之后如何告訴服務器你切了多少塊,以及最終服務器應該如何把你上傳上去的文件進行合并,這都是要考慮的。

因此在文件開始上傳之前,我們和服務器要有一個“握手”的過程,告訴服務器文件信息,然后和服務器約定切片的大小,當和服務器達成共識之后就可以開始后續的文件傳輸了。

前臺要把每一塊的文件傳給后臺,成功之后前端和后端都要標識一下,以便后續的斷點。

當文件傳輸中斷之后用戶再次選擇文件就可以通過標識來判斷文件是否已經上傳了一部分,如果是的話,那么我們可以接著上次的進度繼續傳文件,以達到續傳的功能。

文件的前端切片

有了HTML5 的 File api之后切割文件比想象的要簡單的多。

只要用slice 方法就可以了

var packet = file.slice(start, end);

參數start是開始切片的位置,end是切片結束的位置 單位都是字節。通過控制start和end 就可以是實現文件的分塊

如:

file.slice(0,1000); file.slice(1000,2000); file.slice(2000,3000); // ......

文件片段的上傳

上一部我們通過slice方法把文件分成了若干塊,接下來要做的事情就是把這些碎片傳到服務器上。

這里我們用ajax的post請求來實現

var xhr = new XMLHttpRequest(); var url = xxx // 文件上傳的地址 可以包括文件的參數 如文件名稱 分塊數等以便后臺處理 xhr.open('POST', url, true); xhr.onload = function (e){     // 判斷文件是否上傳成功,如果成功繼續上傳下一塊,如果失敗重試該快 } xhr.upload.onprogress = function(e){     // 選用 如果文件分塊大小較大 可以通過該方法判斷單片文件具體的上傳進度     // e.loaded  該片文件上傳了多少     // e.totalSize 該片文件的總共大小 } xhr.send(packet);

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

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

AI

新营市| 萍乡市| 双江| 保定市| 化德县| 泊头市| 运城市| 柞水县| 新郑市| 买车| 保康县| 蚌埠市| 云林县| 海盐县| 那曲县| 大兴区| 临澧县| 柯坪县| 天镇县| 襄樊市| 绥宁县| 泸西县| 延安市| 屯门区| 杂多县| 墨玉县| 壶关县| 玛曲县| 洛川县| 丹棱县| 常宁市| 天台县| 常州市| 甘德县| 鹤山市| 曲沃县| 蓬溪县| 漯河市| 沧州市| 吴川市| 沅江市|