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

您的位置:首頁技術文章
文章詳情頁

vue+element+oss實現前端分片上傳和斷點續傳

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

純前端實現: 切片上傳 斷點續傳 。斷點續傳需要在切上上傳的基礎上實現

前端之前上傳OSS,無需后端提供接口。先上完整代碼,直接復制,將new OSS里的參數修改成自己公司OSS相關信息后可用,如遇問題,請繼續往下看。

oss官方文檔

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

代碼允許所需環境:vue + element + ali-oss

安裝ali-oss: cnpm install ali-oss

代碼實現

<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'>上傳到服務器</el-button> <el-button size='small' type='success' @click='resumeUpload'>繼續</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’,//根據那你的Bucket地點來填寫 accessKeyId: ’LTA*********RaXY’,//自己賬戶的accessKeyId accessKeySecret: ’uu1************GiS’,//自己賬戶的accessKeySecret bucket: ’a******o’,//bucket名字 });export default { data () { return { fileList:[], file: null, tempCheckpoint: null, // 用來緩存當前切片內容 uploadId: ’’, uploadStatus: null, // 進度條上傳狀態 percentage: 0, // 進度條百分比 uploadName: ’’, //Object所在Bucket的完整路徑 } }, mounted() { // window.addEventListener(’online’, this.resumeUpload); }, methods: { // 點擊上傳至服務器 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) // 暫停時清除時間監聽 let result = client.cancel(); console.log( result, ’---------暫停上傳-----------’) }, // 切片上傳 async multipartUpload () { if (!this.file) { this.$message.error(’請選擇文件’) return } this.uploadStatus = null // console.log('this.uploadStatus',this.file, this.uploadStatus); this.percentage = 0 try { //object-name可以自定義為文件名(例如file.txt)或目錄(例如abc/test/file.txt)的形式,實現將文件上傳至當前Bucket或Bucket下的指定目錄。 let result = await client.multipartUpload(this.file.name, this.file, { headers: { ’Content-Disposition’: ’inline’, ’Content-Type’: this.file.type //注意:根據圖片或者文件的后綴來設置,我試驗用的‘.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-----------’) // 斷點記錄點。瀏覽器重啟后無法直接繼續上傳,您需要手動觸發上傳操作。 }, meta: { year: 2020, people: ’dev’ }, mime: this.file.type }); console.log(result, this.percentage, ’result= 切片上傳完畢=’); } catch (e) { window.addEventListener(’online’, this.resumeUpload) // 該監聽放在斷網的異常處理 // 捕獲超時異常。 if (e.code === ’ConnectionTimeoutError’) { // 請求超時異常處理 this.uploadStatus = ’exception’ console.log('TimeoutError'); // do ConnectionTimeoutError operation } // console.log(e) } }, // 恢復上傳。 async resumeUpload () { window.removeEventListener(’online’, this.resumeUpload) if (!this.tempCheckpoint) { this.$message.error(’請先上傳’) return } this.uploadStatus = null try { let result = await client.multipartUpload(this.file.name, this.file, { headers: { ’Content-Disposition’: ’inline’, ’Content-Type’: this.file.type //注意:根據圖片或者文件的后綴來設置,我試驗用的‘.png’的圖片,具體為什么下文解釋 }, progress: (p, checkpoint) => { this.percentage = p * 100 console.log(p, checkpoint, ’checkpoint----恢復上傳的切片信息-------’) this.tempCheckpoint = checkpoint; }, checkpoint: this.tempCheckpoint, meta: { year: 2020, people: ’dev’ }, mime: this.file.type }) console.log(result, ’result-=-=-恢復上傳完畢’) } catch (e) { console.log(e, ’e-=-=-’); } }, // 選擇文件發生改變 handleChange(file, fileList) { this.fileList = fileList.filter(row => row.uid == file.uid) this.file = file.raw // 文件改變時上傳 // this.submitForm(file) }, handleRemove(file, fileList) { this.percentage = 0 //進度條置空 this.fileList = [] }, }}</script><style scoped></style>

如果相關依賴已經安裝完畢,但是上述代碼操作時仍有報錯,請檢查以下問題

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

上述信息放在前端會存在安全問題,如在項目中使用盡量由后端接口提供。或使用STS臨時授權。demo中沒有,請自行探索。https://www.alibabacloud.com/help/zh/doc-detail/100624.htm?spm=a2c63.p38356.879954.5.7a234d04IQpf5I#concept-xzh-nzk-2gb

配置項中信息可以問后端或者運維,bucket的名字必須是你OSS上存在的且你有權限訪問的,不然會一直報 Pleasr create a busket first或者一直報跨域

當遇到跨域時,或者遇到報報錯信息中有etag時,請檢查OSS配置,然后找有OSS服務器權限人員進行配置:

vue+element+oss實現前端分片上傳和斷點續傳

window.addEventListener(’online’, this.resumeUpload)用于監聽網絡狀態(斷網狀態和連網狀態),實現斷網后恢復網絡自動上傳就必須設置監聽。

window.removeEventListener(’online’, this.resumeUpload)取消監聽。如果不設置取消監聽,聯網狀態下會一直處于進行上傳,因為一直滿足監聽條件`

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

’Content-Type’: this.file.type`的作用:加了在文件上傳完畢后,訪問文件鏈接時可以直接查看,否則會直接下載。

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

上述代碼只是demo,代碼以實現功能為主,并不嚴謹,請自行完善。

到此這篇關于vue+element+oss實現前端分片上傳和斷點續傳的文章就介紹到這了,更多相關vue 分片上傳和斷點續傳內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
六月婷婷一区| 日韩影院精彩在线| 自拍自偷一区二区三区| 欧美日韩国产高清| 亚洲激情黄色| 亚洲专区欧美专区| 三级亚洲高清视频| 日韩区一区二| 国产欧美一区二区三区米奇| 久久国产婷婷国产香蕉| 欧美韩一区二区| 国产不卡av一区二区| 中文字幕高清在线播放| 88xx成人免费观看视频库| 国产亚洲一区二区手机在线观看| 成人日韩精品| 午夜欧美精品| 亚洲一级大片| 亚洲精品成人一区| 国产精品白丝一区二区三区| 国产福利91精品一区二区| 日韩久久视频| 欧美日韩国产高清电影| 性色一区二区| 欧美日韩一区二区三区不卡视频 | 日韩在线视频精品| 激情婷婷综合| 日韩中文字幕| 精品三区视频| 欧美日韩高清| 日本不卡在线视频| 精品中国亚洲| 欧美日韩国产一区精品一区| 日韩中文一区二区| 中文字幕一区二区三区日韩精品| 亚洲最大av| 欧美日韩午夜电影网| 麻豆极品一区二区三区| 日韩一区二区在线免费| 国精品一区二区| 日韩精品成人| 国产激情在线播放| 欧美a级片一区| 欧美亚洲三区| 久久国产毛片| 日本视频一区二区| 香蕉成人av| 日本在线一区二区三区| 91视频精品| 免费人成网站在线观看欧美高清| 国产精品theporn| 亚洲欧美伊人| 深夜福利亚洲| 国产精品成久久久久| 免费看的黄色欧美网站| 国产精品chinese| 午夜精品婷婷| 狠狠久久伊人| 蜜臀久久99精品久久久久久9| 国产伦理一区| 日韩午夜黄色| 国产精品成久久久久| 只有精品亚洲| 国产福利片在线观看| 三级欧美韩日大片在线看| 另类专区亚洲| 国产免费播放一区二区| 1024精品久久久久久久久| 欧美精品国产白浆久久久久| 四虎影视精品| 国产精品日韩精品在线播放| 99xxxx成人网| 日韩一区二区在线免费| 国产欧美另类| 综合亚洲色图| 香蕉精品视频在线观看| 成人三级高清视频在线看| 69精品国产久热在线观看| 欧美日韩国产高清| 黄毛片在线观看| 青草久久视频| 国产精品婷婷| 日韩精品诱惑一区?区三区| 欧美一区二区三区久久精品| 亚洲综合日本| 午夜精品久久久久久久久久蜜桃| 国产精品久久久久久模特 | 97久久精品| 中文无码日韩欧| 国内激情久久| 天堂√8在线中文| 久久av偷拍| 日韩1区2区日韩1区2区| 亚洲在线久久| 在线综合欧美| 欧美一区久久久| 精品一区二区三区免费看 | 国产91精品对白在线播放| 久久影视三级福利片| 欧美亚洲综合视频| 亚洲tv在线| 性欧美精品高清| 在线亚洲国产精品网站| 欧美aa国产视频| 91精品国产福利在线观看麻豆| 久久99国产精品视频| 国产精品一区二区免费福利视频| 免费观看在线综合| 亚洲激情中文| 激情六月综合| 久久人人99| 久久精品亚洲人成影院 | 成人高清一区| 精品视频在线一区二区在线| 国产精品久久久久久模特| 欧美日韩1区2区3区| 日韩成人午夜精品| 日本va欧美va精品| 日韩av资源网| 亚洲精品少妇| 日韩一二三区在线观看| 日韩美女国产精品| 日本成人精品| 欧美一级二区| 国产精品丝袜在线播放| 欧美激情日韩| 韩国一区二区三区视频| 精品国产欧美日韩一区二区三区| 狂野欧美性猛交xxxx| 97国产成人高清在线观看| 欧美sm一区| 亚洲精品网址| 免费在线观看精品| 奇米亚洲欧美| 欧美在线观看天堂一区二区三区| 欧美在线黄色| 免费在线亚洲| 午夜精品成人av| 日韩视频一区二区三区在线播放免费观看| 在线亚洲成人| 日韩av在线免费观看不卡| 国产精品最新自拍| 成人一区而且| 亚洲网站视频| 亚洲综合另类| 欧美一级二级三级视频| 久久香蕉网站| 视频福利一区| 蜜臀国产一区二区三区在线播放| 三级一区在线视频先锋| 18国产精品| 日本一区二区免费高清| 欧美中文一区二区| 鲁大师成人一区二区三区| 最新国产精品久久久| 欧美精品导航| 天堂日韩电影| 蜜臀av亚洲一区中文字幕| 日本特黄久久久高潮| 成人在线黄色| 伊人精品在线| 国产亚洲一卡2卡3卡4卡新区| 国产精品国产一区| 日韩午夜免费| 欧美精品影院| 久久精品青草| 日韩精品国产欧美| 久久久久久网| 首页亚洲欧美制服丝腿| 国产精品一区二区三区美女| 欧美不卡高清一区二区三区| 中文字幕日韩欧美精品高清在线| 免费一级欧美片在线观看网站 | 久久电影一区| 久久国产免费看| 亚洲午夜天堂| 蜜臀国产一区二区三区在线播放| 精品入口麻豆88视频| 亚洲免费在线| 国产一区国产二区国产三区| 久久av一区二区三区| 国产第一亚洲| 亚洲香蕉久久| 日韩伦理在线一区| 亚州av日韩av| 亚洲精品在线影院| 欧美亚洲tv| 欧美精品自拍| 国产一区二区三区久久 | 国产精品嫩草99av在线| 国产福利资源一区| 午夜国产精品视频免费体验区| 国产精品一区高清| 中文亚洲免费| 精品国产精品国产偷麻豆| 免播放器亚洲| 欧美日韩视频免费观看| 国产日本精品| 欧美特黄一区| 国产一区二区三区久久|