<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        HTML5實現文件斷點續傳的方法

        來源:懂視網 責編:小采 時間:2020-11-27 15:12:37
        文檔

        HTML5實現文件斷點續傳的方法

        HTML5實現文件斷點續傳的方法:HTML5的FILE api,有一個slice方法,可以將BLOB對象進行分割。前端通過FileList對象獲取到相應的文件,按照指定的分割方式將大文件分段,然后一段一段地傳給后端,后端再按順序一段段將文件進行拼接。斷點續傳原理目前比較常用的斷點續傳的方法有兩種,一種是
        推薦度:
        導讀HTML5實現文件斷點續傳的方法:HTML5的FILE api,有一個slice方法,可以將BLOB對象進行分割。前端通過FileList對象獲取到相應的文件,按照指定的分割方式將大文件分段,然后一段一段地傳給后端,后端再按順序一段段將文件進行拼接。斷點續傳原理目前比較常用的斷點續傳的方法有兩種,一種是

        HTML5的FILE api,有一個slice方法,可以將BLOB對象進行分割。前端通過FileList對象獲取到相應的文件,按照指定的分割方式將大文件分段,然后一段一段地傳給后端,后端再按順序一段段將文件進行拼接。

        斷點續傳原理

        目前比較常用的斷點續傳的方法有兩種,一種是通過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);

        文件上傳到后臺后,后臺程序如PHP會做出相應的處理。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        HTML5實現文件斷點續傳的方法

        HTML5實現文件斷點續傳的方法:HTML5的FILE api,有一個slice方法,可以將BLOB對象進行分割。前端通過FileList對象獲取到相應的文件,按照指定的分割方式將大文件分段,然后一段一段地傳給后端,后端再按順序一段段將文件進行拼接。斷點續傳原理目前比較常用的斷點續傳的方法有兩種,一種是
        推薦度:
        標簽: 文件 方式 html5
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲va中文字幕无码久久| 综合亚洲伊人午夜网| 亚洲精品福利在线观看| 久久精品国产免费一区| 亚洲日韩小电影在线观看| 51午夜精品免费视频| 亚洲人成中文字幕在线观看| 最近中文字幕免费大全| 亚洲电影免费在线观看| 99在线在线视频免费视频观看| 亚洲成AV人在线观看天堂无码| 久草免费手机视频| 亚洲最大在线观看| 日本不卡视频免费| 一二三四在线观看免费中文在线观看| 亚洲国产成人VA在线观看| 三级片免费观看久久| 亚洲老妈激情一区二区三区| 日本免费污片中国特一级| 麻豆亚洲AV永久无码精品久久 | 亚洲乱码一二三四五六区| 日本在线高清免费爱做网站| 亚洲精品中文字幕| 亚洲欧洲久久av| 日韩免费无码一区二区三区| 国产亚洲精品成人AA片| 亚洲精品和日本精品| 午夜理伦剧场免费| 亚洲精品伦理熟女国产一区二区| 亚洲AV无码一区二三区| 在线观看免费无码专区| 亚洲91精品麻豆国产系列在线| 国产jizzjizz免费看jizz| 无码午夜成人1000部免费视频| 亚洲色偷偷色噜噜狠狠99| 亚洲精品无码AV人在线播放| 日韩欧美一区二区三区免费观看| 美女被免费网站视频在线| 亚洲综合男人的天堂色婷婷| 全黄性性激高免费视频| 免费高清在线爱做视频|