日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

vue+element+oss實(shí)現(xiàn)前端分片上傳和斷點(diǎn)續(xù)傳

瀏覽:18日期:2022-09-30 18:48:38

純前端實(shí)現(xiàn): 切片上傳 斷點(diǎn)續(xù)傳 。斷點(diǎn)續(xù)傳需要在切上上傳的基礎(chǔ)上實(shí)現(xiàn)

前端之前上傳OSS,無(wú)需后端提供接口。先上完整代碼,直接復(fù)制,將new OSS里的參數(shù)修改成自己公司OSS相關(guān)信息后可用,如遇問(wèn)題,請(qǐng)繼續(xù)往下看。

oss官方文檔

https://help.aliyun.com/document_detail/111268.html?spm=a2c4g.11186623.6.1111.5a583a07LknRUO

代碼允許所需環(huán)境:vue + element + ali-oss

安裝ali-oss: cnpm install ali-oss

代碼實(shí)現(xiàn)

<template> <div class='dashboard-editor-container'> <el-upload action='' ref='upload' :file-list='fileList' :limit='2' :on-change='handleChange' :on-remove='handleRemove' :auto-upload='false' accept='' > <el-button slot='trigger' size='small' type='primary'>選取文件</el-button> <el-button size='small' type='success' @click='submitForm'>上傳到服務(wù)器</el-button> <el-button size='small' type='success' @click='resumeUpload'>繼續(xù)</el-button> <el-button size='small' type='success' @click='stopUplosd'>暫停</el-button> <el-button size='small' type='success' @click='abortMultipartUpload'>清除切片</el-button> </el-upload> <el-progress :percentage='percentage' :status='uploadStatus'></el-progress> </div></template><script> let OSS = require(’ali-oss’) // 引入ali-oss插件 const client = new OSS({ region: ’oss-cn-shanghai’,//根據(jù)那你的Bucket地點(diǎn)來(lái)填寫(xiě) accessKeyId: ’LTA*********RaXY’,//自己賬戶(hù)的accessKeyId accessKeySecret: ’uu1************GiS’,//自己賬戶(hù)的accessKeySecret bucket: ’a******o’,//bucket名字 });export default { data () { return { fileList:[], file: null, tempCheckpoint: null, // 用來(lái)緩存當(dāng)前切片內(nèi)容 uploadId: ’’, uploadStatus: null, // 進(jìn)度條上傳狀態(tài) percentage: 0, // 進(jìn)度條百分比 uploadName: ’’, //Object所在Bucket的完整路徑 } }, mounted() { // window.addEventListener(’online’, this.resumeUpload); }, methods: { // 點(diǎn)擊上傳至服務(wù)器 submitForm(file) { this.multipartUpload(); }, // 取消分片上傳事件 async abortMultipartUpload() { window.removeEventListener(’online’, this.resumeUpload) const name = this.uploadName; // Object所在Bucket的完整路徑。 const uploadId = this.upload; // 分片上傳uploadId。 const result = await client.abortMultipartUpload(name, uploadId); console.log(result, ’=======清除切片====’); }, // 暫停分片上傳。 stopUplosd () { window.removeEventListener(’online’, this.resumeUpload) // 暫停時(shí)清除時(shí)間監(jiān)聽(tīng) let result = client.cancel(); console.log( result, ’---------暫停上傳-----------’) }, // 切片上傳 async multipartUpload () { if (!this.file) { this.$message.error(’請(qǐng)選擇文件’) return } this.uploadStatus = null // console.log('this.uploadStatus',this.file, this.uploadStatus); this.percentage = 0 try { //object-name可以自定義為文件名(例如file.txt)或目錄(例如abc/test/file.txt)的形式,實(shí)現(xiàn)將文件上傳至當(dāng)前Bucket或Bucket下的指定目錄。 let result = await client.multipartUpload(this.file.name, this.file, { headers: { ’Content-Disposition’: ’inline’, ’Content-Type’: this.file.type //注意:根據(jù)圖片或者文件的后綴來(lái)設(shè)置,我試驗(yàn)用的‘.png’的圖片,具體為什么下文解釋 }, progress: (p, checkpoint) => { this.tempCheckpoint = checkpoint; this.upload = checkpoint.uploadId this.uploadName = checkpoint.name this.percentage = p * 100 // console.log(p, checkpoint, this.percentage, ’---------uploadId-----------’) // 斷點(diǎn)記錄點(diǎn)。瀏覽器重啟后無(wú)法直接繼續(xù)上傳,您需要手動(dòng)觸發(fā)上傳操作。 }, meta: { year: 2020, people: ’dev’ }, mime: this.file.type }); console.log(result, this.percentage, ’result= 切片上傳完畢=’); } catch (e) { window.addEventListener(’online’, this.resumeUpload) // 該監(jiān)聽(tīng)放在斷網(wǎng)的異常處理 // 捕獲超時(shí)異常。 if (e.code === ’ConnectionTimeoutError’) { // 請(qǐng)求超時(shí)異常處理 this.uploadStatus = ’exception’ console.log('TimeoutError'); // do ConnectionTimeoutError operation } // console.log(e) } }, // 恢復(fù)上傳。 async resumeUpload () { window.removeEventListener(’online’, this.resumeUpload) if (!this.tempCheckpoint) { this.$message.error(’請(qǐng)先上傳’) return } this.uploadStatus = null try { let result = await client.multipartUpload(this.file.name, this.file, { headers: { ’Content-Disposition’: ’inline’, ’Content-Type’: this.file.type //注意:根據(jù)圖片或者文件的后綴來(lái)設(shè)置,我試驗(yàn)用的‘.png’的圖片,具體為什么下文解釋 }, progress: (p, checkpoint) => { this.percentage = p * 100 console.log(p, checkpoint, ’checkpoint----恢復(fù)上傳的切片信息-------’) this.tempCheckpoint = checkpoint; }, checkpoint: this.tempCheckpoint, meta: { year: 2020, people: ’dev’ }, mime: this.file.type }) console.log(result, ’result-=-=-恢復(fù)上傳完畢’) } catch (e) { console.log(e, ’e-=-=-’); } }, // 選擇文件發(fā)生改變 handleChange(file, fileList) { this.fileList = fileList.filter(row => row.uid == file.uid) this.file = file.raw // 文件改變時(shí)上傳 // this.submitForm(file) }, handleRemove(file, fileList) { this.percentage = 0 //進(jìn)度條置空 this.fileList = [] }, }}</script><style scoped></style>

如果相關(guān)依賴(lài)已經(jīng)安裝完畢,但是上述代碼操作時(shí)仍有報(bào)錯(cuò),請(qǐng)檢查以下問(wèn)題

const client = new OSS({ region: ’oss-cn-shanghai’,//根據(jù)那你的Bucket地點(diǎn)來(lái)填寫(xiě) accessKeyId: ’LT******XY’,//自己賬戶(hù)的accessKeyId accessKeySecret: ’uu*********GiS’,//自己賬戶(hù)的accessKeySecret bucket: ’a******io’,//bucket名字 });

上述信息放在前端會(huì)存在安全問(wèn)題,如在項(xiàng)目中使用盡量由后端接口提供。或使用STS臨時(shí)授權(quán)。demo中沒(méi)有,請(qǐng)自行探索。https://www.alibabacloud.com/help/zh/doc-detail/100624.htm?spm=a2c63.p38356.879954.5.7a234d04IQpf5I#concept-xzh-nzk-2gb

配置項(xiàng)中信息可以問(wèn)后端或者運(yùn)維,bucket的名字必須是你OSS上存在的且你有權(quán)限訪(fǎng)問(wèn)的,不然會(huì)一直報(bào) Pleasr create a busket first或者一直報(bào)跨域

當(dāng)遇到跨域時(shí),或者遇到報(bào)報(bào)錯(cuò)信息中有etag時(shí),請(qǐng)檢查OSS配置,然后找有OSS服務(wù)器權(quán)限人員進(jìn)行配置:

vue+element+oss實(shí)現(xiàn)前端分片上傳和斷點(diǎn)續(xù)傳

window.addEventListener(’online’, this.resumeUpload)用于監(jiān)聽(tīng)網(wǎng)絡(luò)狀態(tài)(斷網(wǎng)狀態(tài)和連網(wǎng)狀態(tài)),實(shí)現(xiàn)斷網(wǎng)后恢復(fù)網(wǎng)絡(luò)自動(dòng)上傳就必須設(shè)置監(jiān)聽(tīng)。

window.removeEventListener(’online’, this.resumeUpload)取消監(jiān)聽(tīng)。如果不設(shè)置取消監(jiān)聽(tīng),聯(lián)網(wǎng)狀態(tài)下會(huì)一直處于進(jìn)行上傳,因?yàn)橐恢睗M(mǎn)足監(jiān)聽(tīng)條件`

headers: { ’Content-Disposition’: ’inline’, ’Content-Type’: this.file.type //注意:根據(jù)圖片或者文件的后綴來(lái)設(shè)置,我取得是文件的type,具體為什么下文解釋 },

’Content-Type’: this.file.type`的作用:加了在文件上傳完畢后,訪(fǎng)問(wèn)文件鏈接時(shí)可以直接查看,否則會(huì)直接下載。

文件上傳完畢后查看,可以去resule.res.requestUrls中去取,但是注意要去點(diǎn)地址后面的 ?uploadId=******

上述代碼只是demo,代碼以實(shí)現(xiàn)功能為主,并不嚴(yán)謹(jǐn),請(qǐng)自行完善。

到此這篇關(guān)于vue+element+oss實(shí)現(xiàn)前端分片上傳和斷點(diǎn)續(xù)傳的文章就介紹到這了,更多相關(guān)vue 分片上傳和斷點(diǎn)續(xù)傳內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲国产一区二区三区在线播放| 日韩精品网站| 在线一区视频观看| 日韩av成人高清| 国产免费播放一区二区| 精品亚洲美女网站| 中文字幕在线官网| 丝袜美腿高跟呻吟高潮一区| 国产亚洲精品自拍| 欧美在线黄色| 国产精品三级| 好看的av在线不卡观看| 日韩三级久久| 日韩高清电影一区| 欧美久久精品| 欧美精品中文字幕亚洲专区| 激情自拍一区| 美女尤物久久精品| 在线国产精品一区| 亚洲精品日韩久久| 婷婷亚洲成人| 国产一区二区亚洲| 日本久久黄色| 伊人精品一区| 日韩午夜视频在线| 国产不卡精品在线| 91精品观看| 日韩不卡一区二区| 精品国产一级| 1024精品久久久久久久久| 国产亚洲综合精品| 欧美国产极品| 亚洲二区三区不卡| 欧美亚洲一级| 九色精品91| 国产剧情在线观看一区| 亲子伦视频一区二区三区| 欧美大黑bbbbbbbbb在线| 亚洲久久视频| 91精品啪在线观看国产18 | 国模 一区 二区 三区| 蜜臀a∨国产成人精品| 国产精品久久久久久久免费软件 | 欧美私人啪啪vps| 亚洲高清激情| 精品午夜视频| 亚洲精选久久| 欧美激情另类| 综合激情视频| 精品欧美一区二区三区在线观看| 久久99伊人| 欧美色图国产精品| 精品中文字幕一区二区三区四区| 亚洲经典在线| 久久精品免费一区二区三区| 国产精品久久久免费| 亚洲一区二区三区四区五区午夜 | 亚洲精品福利| 欧美日韩黑人| 亚洲黑丝一区二区| 国产精品字幕| 色在线中文字幕| 精品亚洲成人| 国产精品一页| 欧美亚洲网站| 国产一卡不卡| 日韩欧乱色一区二区三区在线| 蜜桃视频欧美| 国产精品av一区二区| 香蕉成人av| 久久免费精品| 国产伦精品一区二区三区千人斩| 亚洲一区二区三区四区电影| 久久一区二区三区喷水| 久久久天天操| 99精品一区| 亚洲精品一二三区区别| 91久久久精品国产| 亚洲在线一区| 中文字幕av亚洲精品一部二部 | 久久狠狠婷婷| 亚洲激情社区| 一区二区国产在线| 亚洲美洲欧洲综合国产一区| 婷婷综合在线| 视频精品一区| 美女视频网站久久| 激情国产在线| 99国产精品久久久久久久| 中文亚洲免费| 日韩av电影一区| 久久精品天堂| 日韩国产激情| 亚洲综合欧美| 久久av日韩| 亚洲激情五月| 国产色噜噜噜91在线精品| 久久精品国产99国产| 国产视频一区二区在线播放| 免费看一区二区三区| 欧美搞黄网站| 国产欧美午夜| 国精品产品一区| 免费日韩av| 国产一区二区三区不卡视频网站 | 欧洲亚洲一区二区三区| 亚洲天堂av资源在线观看| 国产美女撒尿一区二区| 国产aⅴ精品一区二区三区久久| 久久精品国产亚洲夜色av网站| 亚洲欧洲日本mm| 加勒比视频一区| 亚洲色图国产| 成人在线视频区| 欧美一区=区| 国产精选在线| 亚洲综合专区| 国产综合欧美| 国产一区二区三区不卡视频网站 | 国产理论在线| 国产欧美自拍| 日本成人中文字幕| 亚洲一区国产| 久久精品国产亚洲夜色av网站| 国产精品日韩精品中文字幕| 日韩毛片在线| 欧美黑人做爰爽爽爽| 亚洲精品系列| 日韩中文字幕| 99久久亚洲精品| 国产精品精品国产一区二区| 国产日韩中文在线中文字幕| 亚洲成人一区| 蜜桃视频欧美| 亚洲国产成人精品女人| 久久久久国产| 亚洲天堂免费电影| 麻豆视频在线看| 国产自产自拍视频在线观看| 国产aⅴ精品一区二区三区久久| 国产精品密蕾丝视频下载| 国产探花一区在线观看| 天堂俺去俺来也www久久婷婷| 亚洲免费网址| 国产精品美女久久久浪潮软件| 不卡一区综合视频| 欧美一区=区| 日韩二区在线观看| 国产一区二区三区成人欧美日韩在线观看 | 亚洲综合精品| 日韩精品一区二区三区中文在线| 日本欧美一区二区| 国产精品久久777777毛茸茸| 久久99影视| 日本а中文在线天堂| 国产精品黄色| 超碰成人av| 日韩精品免费一区二区在线观看 | 久久成人国产| 亚洲精品三级| 国产精品久久观看| 鲁鲁在线中文| 婷婷综合激情| 亚洲精品护士| 国产传媒av在线| 伊人久久亚洲影院| 日本国产一区| 综合视频一区| 国产成人免费av一区二区午夜| 国产精品成人a在线观看| 99tv成人| 久久国产麻豆精品| 午夜久久一区| 国产欧美日韩影院| 久久精品高清| 国产精品一区二区av日韩在线| 国产一区二区三区四区二区| 久久国产电影| 91精品国产自产在线丝袜啪| 开心激情综合| 国产午夜精品一区二区三区欧美| 偷拍亚洲精品| 日韩精品91| 国产精选一区| aⅴ色国产欧美| 国产一区二区久久久久| 蜜桃久久精品一区二区| 日本蜜桃在线观看视频| 日本成人手机在线| 亚洲福利一区| 精品国产黄a∨片高清在线| 亚洲免费婷婷| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲在线电影| 激情国产在线| 国产福利资源一区| 亚洲精品一级| 国产精品久久久久久久久免费高清| 91精品国产调教在线观看| 欧美国产另类|