版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、vue.js實(shí)現(xiàn)大文件分片md5斷點(diǎn)續(xù)傳背景按照部門(mén)的業(yè)務(wù)需求,需要在網(wǎng)絡(luò)狀態(tài)不良的狀況下上傳很大的文件(1g+)。其中會(huì)碰到的問(wèn)題:1,文件過(guò)大,超出服務(wù)端的哀求大小限制;2,哀求時(shí)光過(guò)長(zhǎng),哀求超時(shí);3,傳輸中斷,必需重新上傳導(dǎo)致前功盡棄。解決計(jì)劃實(shí)現(xiàn)思路,拿到文件,保存文件唯一性標(biāo)識(shí),切割文件、分片上傳、文件md5驗(yàn)證、斷點(diǎn)續(xù)傳、手動(dòng)重試上傳。前言鑒于過(guò)往有用法過(guò)webupload文件上傳組件的閱歷,于是此次采納的是plupload作為替換。plupload是一款由聞名的web編輯器tinymce團(tuán)隊(duì)開(kāi)發(fā)的上傳組件,容易易用且功能強(qiáng)大。plupload有以下功能和特點(diǎn)擁有多種上傳方式:ht
2、ml5、flash、silverlight以及傳統(tǒng)的。plupload會(huì)自動(dòng)偵測(cè)當(dāng)前的環(huán)境,挑選最合適的上傳方式,并且會(huì)優(yōu)先用法html5的方式。所以你徹低不用去操勞當(dāng)前的掃瞄器支持哪些上傳方式,plupload會(huì)自動(dòng)為你挑選最合適的方式。支持以拖拽的方式來(lái)選取要上傳的文件支持在前端壓縮,即在文件還未上傳之前就對(duì)它舉行壓縮可以挺直讀取原生的文件數(shù)據(jù),這樣的益處就是例如可以在文件還未上傳之前就能把它顯示在頁(yè)面上預(yù)覽支持把大文件切割成小片舉行上傳,由于有些掃瞄器對(duì)很大的文件比如幾g的一些文件無(wú)法上傳。環(huán)境vue2.xwebpack3.xaxios代碼npm安裝plupload,文件引入組件,初始化
3、辦法filesadded(),每次上傳前清空隊(duì)列的其他文件,保證上傳的全都性。第二對(duì)文件類(lèi)型舉行推斷過(guò)濾filetype(),文件進(jìn)入時(shí)舉行總md5一次filemd5(),然后進(jìn)入文件分片chunkcheckstatus(),每個(gè)分片都要舉行md5并與后臺(tái)舉行校驗(yàn)filemd5(),確保文件在中斷后繼續(xù)上傳的精確性。filesadded(up,files)/刪除上傳隊(duì)列中其他文件,只保留最近上傳的文件letfilelen=files.length,that=thisif(filelen>1)files=files.splice(0,filelen-1)/清空上傳隊(duì)列files.forea
4、ch(f)=>f.status=-1that.dataform.file=fthat.filetype(f.getnative()if(that.loading)putestatus=gress=0/文件分片letchunksize=2097152,/readinchunksof2mbchunks=math.ceil(f.size/chunksize)that.filemd5(f.getnative(),(e,md5)=>that.dataform.md5=md5if(that.loading=true)that.count=0that.chunkcheck
5、status(md5,that.dataform.filename,(uploader,datalist)=>that.uploading=uploaderif(that.uploading=true)for(letchunk=1;chunkthat.filemd5(chunkfile,(e,blockmd5)=>that.postfile(up,chunkfile,chunk,chunks,md5,blockmd5)else/去重gress=0for(letchunk=1;chunkif(item.chunk=chunk)status=1returnfalse)i
6、f(status=0)that.filechunkfile(f.getnative(),chunk,(e,chunkfile)=>that.filemd5(chunkfile,(e,blockmd5)=>that.postfile(up,chunkfile,chunk,chunks,md5,blockmd5)文件md5辦法,這里用法了sparkmd5,importsparkmd5from&39;spark-md5&39;filemd5(file,callback)letthat=thisvarblobslice=ftotype.slice|file.p
7、rototype.mozslice|ftotype.webkitslice,file=file,chunksize=2097152,/readinchunksof2mbchunks=math.ceil(file.size/chunksize),currentchunk=0,spark=newsparkmd5.arraybuffer(),filereader=newfilereader()filereader.onload=function(e)console.log(&39;readchunknr&39;,currentchunk+1,&39;of&
8、;39;,chunks)spark.append(e.target.result)/appendarraybuffercurrentchunk+if(currentchunk=file.size)?file.size:start+chunksizefilereader.readasarraybuffer(blobslice.call(file,start,end)loadnext()文件分片上傳辦法,驗(yàn)證總分片信息后,把每個(gè)分片舉行md5加密并上傳校驗(yàn),這里有寫(xiě)進(jìn)度條相關(guān)的控制,不一一展示chunkcheckstatus(md5,filename,callback)this.$http(url
9、:this.$http.adornurl(&39;/biz/upload/getfileblockstatus&39;),method:&39;get&39;,params:this.$http.adornparams(md5:md5,filename:filename).then(data)=>if(data&&data.code=0)if(data.list!=null)this.uploading=falsethis.chunkcheckdata=data.list.map(item,index)=>if(item.isupload=true)this.count+this.chunkcheckdata.push(item)callback(this.uploading,this.chunkcheckda
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年茶葉收購(gòu)與倉(cāng)儲(chǔ)管理合同2篇
- 水電安裝工程2025年度合同書(shū)協(xié)議2篇
- 二零二五版快遞物流服務(wù)質(zhì)量監(jiān)控與評(píng)估協(xié)議合同2篇
- 二零二五年電子供應(yīng)鏈采購(gòu)合同3篇
- 二零二五年度校園巴士運(yùn)營(yíng)管理合同范本3篇
- 二零二五年高端餐飲會(huì)所租賃承包合同范本3篇
- 2025年危險(xiǎn)品運(yùn)輸及應(yīng)急處理合同3篇
- 二零二五版物流倉(cāng)儲(chǔ)與新能源利用合同3篇
- 小學(xué)教師事業(yè)單位聘用合同(2篇)
- 二零二五年度綠色交通PPP特許經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同3篇
- 數(shù)學(xué)八下學(xué)霸電子版蘇教版
- SQL Server 2000在醫(yī)院收費(fèi)審計(jì)的運(yùn)用
- 《FANUC-Oi數(shù)控銑床加工中心編程技巧與實(shí)例》教學(xué)課件(全)
- 微信小程序運(yùn)營(yíng)方案課件
- 陳皮水溶性總生物堿的升血壓作用量-效關(guān)系及藥動(dòng)學(xué)研究
- 安全施工專(zhuān)項(xiàng)方案報(bào)審表
- 學(xué)習(xí)解讀2022年新制定的《市場(chǎng)主體登記管理?xiàng)l例實(shí)施細(xì)則》PPT匯報(bào)演示
- 好氧廢水系統(tǒng)調(diào)試、驗(yàn)收、運(yùn)行、維護(hù)手冊(cè)
- 中石化ERP系統(tǒng)操作手冊(cè)
- 五年級(jí)上冊(cè)口算+脫式計(jì)算+豎式計(jì)算+方程
- 氣體管道安全管理規(guī)程
評(píng)論
0/150
提交評(píng)論