plupload斷點續傳

2021-09-02 11:24:45 字數 1328 閱讀 4219

[size=large][b]1. 簡介[/b][/size]

plupload是不支援斷點續傳的,但是他支援分片上傳,因此我們只需要開啟其分片上傳後,在檔案上傳之前請求乙個伺服器當前檔案已上傳的大小,如果上傳大小為0則認為沒有上傳過,重新上傳,如果上傳檔案大小大於0則從已上傳的切片的下乙個切片開始上傳。

[b][size=large]2. 修改plupload[/size][/b]

[b]1. 判斷是否上傳過[/b]

修改plupload.js,在onuploadfile方法中新增請求

if (file.name && chunksize) ,

success: function(data)

});}

注意: 此處offset = number(data)如果是ie9+瀏覽器可以不用進行number轉換,但是ie8中會出現只傳一片的情況,需要把offset轉為number才可以

[b]2. 新增斷點續傳引數[/b]

[b]3. 新增interceptor[/b]

[b](1)如果是請求已上傳檔案大小,則查詢檔案,返回已上傳檔案大小[/b]

[b](2)如果是斷點續傳,則進行上傳[/b]

[b](3)斷點續傳的臨時檔名根據檔名、檔案大小、檔案修改時間組合求雜湊值[/b]

[b]4. 修改上傳action**[/b]

如果是斷點續傳那麼上傳檔案的filefilename不是真正的檔名,name引數,因此需要替換下

string resumableupload = request.getparameter(resumable_upload);

if (stringutils.isnotempty(resumableupload))

[b]5. 相容ie8 ie9[/b]

plupload分片上傳使用了html5的新特性,針對ie8 ie9等不支援html5的情況,採用flash等進行分片上傳,但是plupload不建議採用flash分片上傳,因為flash在分片上傳讀取待上傳檔案時不能讀取一部分,只能將檔案全部載入到記憶體中再進行分片上傳,會消耗客戶端記憶體。因此預設情況沒有開啟分片上傳,而且根據他官方給的強制開啟方法也不好使,最終修改了moxie

slice_blob: function(value) ,

[b]由brower改為client[/b]

HTTP 斷點續傳

客戶端請求域 range 格式如下例子 第乙個500位元組 位元組偏移量0 499,包括0和499 range bytes 0 499 第二個500位元組 位元組偏移量500 999,包括500和999 range bytes 500 999 最後500位元組 位元組偏移量9500 9999,包括9...

IOS斷點續傳

asihttprequest可以實現斷點續傳。網上有一些介紹類似使用 request setallowresumeforfiledownloads yes 不過,通過asihttprequest的非同步請求以及delegate還是可以實現斷點續傳的。本文還是以grails編寫斷點續傳伺服器端為例。非...

linux斷點續傳

在linux伺服器上經常要用scp傳輸大檔案,可能由於網路等原因出現間接性中斷,導致傳輸一半的檔案突然中斷。其實scp是可以續傳的,它需要rsync以及它的ssh協議 舉例如下 rsync p rsh ssh home.tar 192.168.205.34 home home.tar,再輸出密碼後,...