日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传

發布時間:2025/3/21 vue 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:Pseudo

轉發鏈接:https://segmentfault.com/a/1190000023434864

凡是要知其然知其所以然

文件上傳相信很多朋友都有遇到過,那或許你也遇到過當上傳大文件時,上傳時間較長,且經常失敗的困擾,并且失敗后,又得重新上傳很是煩人。那我們先了解下失敗的原因吧!

前面小編也整理過關于文件上傳的詳細原理和文件上傳技巧:

手把手教你前端的各種文件上傳攻略和大文件斷點續傳

一文了解文件上傳全過程(1.8w字深度解析)「前端進階必備」

據我了解大概有以下原因:

  • 服務器配置:例如在PHP中默認的文件上傳大小為8M【post_max_size = 8m】,若你在一個請求體中放入8M以上的內容時,便會出現異常
  • 請求超時:當你設置了接口的超時時間為10s,那么上傳大文件時,一個接口響應時間超過10s,那么便會被Faild掉。
  • 網絡波動:這個就屬于不可控因素,也是較常見的問題。
  • 基于以上原因,聰明的人們就想到了,將文件拆分多個小文件,依次上傳,不就解決以上1,2問題嘛,這便是分片上傳。 網絡波動這個實在不可控,也許一陣大風刮來,就斷網了呢。那這樣好了,既然斷網無法控制,那我可以控制只上傳以經上傳的文件內容,不就好了,這樣大大加快了重新上傳的速度。所以便有了“斷點續傳”一說。此時,人群中有人插了一嘴,有些文件我已經上傳一遍了,為啥還要在上傳,能不能不浪費我流量和時間。喔...這個嘛,簡單,每次上傳時判斷下是否存在這個文件,若存在就不重新上傳便可,于是又有了“秒傳”一說。從此這"三兄弟" 便自行CP,統治了整個文件界?!?/p>

    注意文中的代碼并非實際代碼,請移步至github查看最新代碼

    github: https://github.com/pseudo-god/vue-simple-upload


    分片上傳

    HTML

    原生INPUT樣式較丑,這里通過樣式疊加的方式,放一個Button.

    選擇文件 上傳暫停恢復清空 ({ container: { files: null }, tempFilesArr: [], // 存儲files信息 cancels: [], // 存儲要取消的請求 tempThreads: 3, // 默認狀態 status: Status.wait }),

    一個稍微好看的UI就出來了。

    選擇文件

    選擇文件過程中,需要對外暴露出幾個鉤子,熟悉elementUi的同學應該很眼熟,這幾個鉤子基本與其一致。onExceed:文件超出個數限制時的鉤子、beforeUpload:文件上傳之前

    fileIndex 這個很重要,因為是多文件上傳,所以定位當前正在被上傳的文件就很重要,基本都靠它

    handleFileChange(e) { const files = e.target.files; if (!files) return; Object.assign(this.$data, this.$options.data()); // 重置data所有數據 fileIndex = 0; // 重置文件下標 this.container.files = files; // 判斷文件選擇的個數 if (this.limit && this.container.files.length > this.limit) { this.onExceed && this.onExceed(files); return; } // 因filelist不可編輯,故拷貝filelist 對象 var index = 0; // 所選文件的下標,主要用于剔除文件后,原文件list與臨時文件list不對應的情況 for (const key in this.container.files) { if (this.container.files.hasOwnProperty(key)) { const file = this.container.files[key]; if (this.beforeUpload) { const before = this.beforeUpload(file); if (before) { this.pushTempFile(file, index); } } if (!this.beforeUpload) { this.pushTempFile(file, index); } index++; } }},// 存入 tempFilesArr,為了上面的鉤子,所以將代碼做了拆分pushTempFile(file, index) { // 額外的初始值 const obj = { status: fileStatus.wait, chunkList: [], uploadProgress: 0, hashProgress: 0, index }; for (const k in file) { obj[k] = file[k]; } console.log('pushTempFile -> obj', obj); this.tempFilesArr.push(obj);}

    分片上傳

    創建切片,循環分解文件即可 createFileChunk(file, size = chunkSize) { const fileChunkList = []; var count = 0; while (count < file.size) { fileChunkList.push({ file: file.slice(count, count + size) }); count += size; } return fileChunkList;}循環創建切片,既然咱們做的是多文件,所以這里就有循環去處理,依次創建文件切片,及切片的上傳。async handleUpload(resume) { if (!this.container.files) return; this.status = Status.uploading; const filesArr = this.container.files; var tempFilesArr = this.tempFilesArr; for (let i = 0; i < tempFilesArr.length; i++) { fileIndex = i; //創建切片 const fileChunkList = this.createFileChunk( filesArr[tempFilesArr[i].index] ); tempFilesArr[i].fileHash ='xxxx'; // 先不用看這個,后面會講,占個位置 tempFilesArr[i].chunkList = fileChunkList.map(({ file }, index) => ({ fileHash: tempFilesArr[i].hash, fileName: tempFilesArr[i].name, index, hash: tempFilesArr[i].hash + '-' + index, chunk: file, size: file.size, uploaded: false, progress: 0, // 每個塊的上傳進度 status: 'wait' // 上傳狀態,用作進度狀態顯示 })); //上傳切片 await this.uploadChunks(this.tempFilesArr[i]); }}上傳切片,這個里需要考慮的問題較多,也算是核心吧,uploadChunks方法只負責構造傳遞給后端的數據,核心上傳功能放到sendRequest方法中 async uploadChunks(data) { var chunkData = data.chunkList; const requestDataList = chunkData .map(({ fileHash, chunk, fileName, index }) => { const formData = new FormData(); formData.append('md5', fileHash); formData.append('file', chunk); formData.append('fileName', index); // 文件名使用切片的下標 return { formData, index, fileName }; }); try { await this.sendRequest(requestDataList, chunkData); } catch (error) { // 上傳有被reject的 this.$message.error('親 上傳失敗了,考慮重試下呦' + error); return; } // 合并切片 const isUpload = chunkData.some(item => item.uploaded === false); console.log('created -> isUpload', isUpload); if (isUpload) { alert('存在失敗的切片'); } else { // 執行合并 await this.mergeRequest(data); }}sendReques。上傳這是最重要的地方,也是容易失敗的地方,假設有10個分片,那我們若是直接發10個請求的話,很容易達到瀏覽器的瓶頸,所以需要對請求進行并發處理。并發處理:這里我使用for循環控制并發的初始并發數,然后在 handler 函數里調用自己,這樣就控制了并發。在handler中,通過數組API.shift模擬隊列的效果,來上傳切片。重點: retryArr 數組存儲每個切片文件請求的重試次數,做累加。比如[1,0,2],就是第0個文件切片報錯1次,第2個報錯2次。為保證能與文件做對應,const index = formInfo.index; 我們直接從數據中拿之前定義好的index。 若失敗后,將失敗的請求重新加入隊列即可。關于并發及重試我寫了一個小Demo,若不理解可以自己在研究下,文件地址:https://github.com/pseudo-god/vue-simple-upload/blob/master/src/utils/sendRequest-domo.js, 重試代碼好像被我弄丟了,大家要是有需求,我再補吧! // 并發處理sendRequest(forms, chunkData) { var finished = 0; const total = forms.length; const that = this; const retryArr = []; // 數組存儲每個文件hash請求的重試次數,做累加 比如[1,0,2],就是第0個文件切片報錯1次,第2個報錯2次 return new Promise((resolve, reject) => { const handler = () => { if (forms.length) { // 出棧 const formInfo = forms.shift(); const formData = formInfo.formData; const index = formInfo.index; instance.post('fileChunk', formData, { onUploadProgress: that.createProgresshandler(chunkData[index]), cancelToken: new CancelToken(c => this.cancels.push(c)), timeout: 0 }).then(res => { console.log('handler -> res', res); // 更改狀態 chunkData[index].uploaded = true; chunkData[index].status = 'success'; finished++; handler(); }) .catch(e => { // 若暫停,則禁止重試 if (this.status === Status.pause) return; if (typeof retryArr[index] !== 'number') { retryArr[index] = 0; } // 更新狀態 chunkData[index].status = 'warning'; // 累加錯誤次數 retryArr[index]++; // 重試3次 if (retryArr[index] >= this.chunkRetry) { return reject('重試失敗', retryArr); } this.tempThreads++; // 釋放當前占用的通道 // 將失敗的重新加入隊列 forms.push(formInfo); handler(); }); } if (finished >= total) { resolve('done'); } }; // 控制并發 for (let i = 0; i < this.tempThreads; i++) { handler(); } });}切片的上傳進度,通過axios的onUploadProgress事件,結合createProgresshandler方法進行維護// 切片上傳進度createProgresshandler(item) { return p => { item.progress = parseInt(String((p.loaded / p.total) * 100)); this.fileProgress(); };}

    Hash計算

    其實就是算一個文件的MD5值,MD5在整個項目中用到的地方也就幾點。

    秒傳,需要通過MD5值判斷文件是否已存在。續傳:需要用到MD5作為key值,當唯一值使用。

    本項目主要使用worker處理,性能及速度都會有很大提升.
    由于是多文件,所以HASH的計算進度也要體現在每個文件上,所以這里使用全局變量fileIndex來定位當前正在被上傳的文件

    // 生成文件 hash(web-worker)calculateHash(fileChunkList) { return new Promise(resolve => { this.container.worker = new Worker('./hash.js'); this.container.worker.postMessage({ fileChunkList }); this.container.worker.onmessage = e => { const { percentage, hash } = e.data; if (this.tempFilesArr[fileIndex]) { this.tempFilesArr[fileIndex].hashProgress = Number( percentage.toFixed(0) ); } if (hash) { resolve(hash); } }; });}

    因使用worker,所以我們不能直接使用NPM包方式使用MD5。需要單獨去下載spark-md5.js文件,并引入

    //hash.jsself.importScripts("/spark-md5.min.js"); // 導入腳本// 生成文件 hashself.onmessage = e => { const { fileChunkList } = e.data; const spark = new self.SparkMD5.ArrayBuffer(); let percentage = 0; let count = 0; const loadNext = index => { const reader = new FileReader(); reader.readAsArrayBuffer(fileChunkList[index].file); reader.onload = e => { count++; spark.append(e.target.result); if (count === fileChunkList.length) { self.postMessage({ percentage: 100, hash: spark.end() }); self.close(); } else { percentage += 100 / fileChunkList.length; self.postMessage({ percentage }); loadNext(count); } }; }; loadNext(0);};

    文件合并

    當我們的切片全部上傳完畢后,就需要進行文件的合并,這里我們只需要請求接口即可

    mergeRequest(data) { const obj = { md5: data.fileHash, fileName: data.name, fileChunkNum: data.chunkList.length }; instance.post('fileChunk/merge', obj, { timeout: 0 }) .then((res) => { this.$message.success('上傳成功'); }); }

    Done: 至此一個分片上傳的功能便已完成

    斷點續傳

    顧名思義,就是從那斷的就從那開始,明確思路就很簡單了。一般有2種方式,一種為服務器端返回,告知我從那開始,還有一種是瀏覽器端自行處理。2種方案各有優缺點。本項目使用第二種。

    思路:已文件HASH為key值,每個切片上傳成功后,記錄下來便可。若需要續傳時,直接跳過記錄中已存在的便可。本項目將使用Localstorage進行存儲,這里我已提前封裝好addChunkStorage、getChunkStorage方法。

    存儲在Stroage的數據

    緩存處理

    在切片上傳的axios成功回調中,存儲已上傳成功的切片

    instance.post('fileChunk', formData, ) .then(res => { // 存儲已上傳的切片下標+ this.addChunkStorage(chunkData[index].fileHash, index); handler(); })

    在切片上傳前,先看下localstorage中是否存在已上傳的切片,并修改uploaded

    async handleUpload(resume) {+ const getChunkStorage = this.getChunkStorage(tempFilesArr[i].hash); tempFilesArr[i].chunkList = fileChunkList.map(({ file }, index) => ({+ uploaded: getChunkStorage && getChunkStorage.includes(index), // 標識:是否已完成上傳+ progress: getChunkStorage && getChunkStorage.includes(index) ? 100 : 0,+ status: getChunkStorage && getChunkStorage.includes(index)? 'success'+ : 'wait' // 上傳狀態,用作進度狀態顯示 })); }

    構造切片數據時,過濾掉uploaded為true的

    async uploadChunks(data) { var chunkData = data.chunkList; const requestDataList = chunkData+ .filter(({ uploaded }) => !uploaded) .map(({ fileHash, chunk, fileName, index }) => { const formData = new FormData(); formData.append('md5', fileHash); formData.append('file', chunk); formData.append('fileName', index); // 文件名使用切片的下標 return { formData, index, fileName }; })}

    垃圾文件清理

    隨著上傳文件的增多,相應的垃圾文件也會增多,比如有些時候上傳一半就不再繼續,或上傳失敗,碎片文件就會增多。解決方案我目前想了2種

    前端在localstorage設置緩存時間,超過時間就發送請求通知后端清理碎片文件,同時前端也要清理緩存。前后端都約定好,每個緩存從生成開始,只能存儲12小時,12小時后自動清理

    以上2種方案似乎都有點問題,極有可能造成前后端因時間差,引發切片上傳異常的問題,后面想到合適的解決方案再來更新吧。

    Done: 續傳到這里也就完成了。

    秒傳

    這算是最簡單的,只是聽起來很厲害的樣子。原理:計算整個文件的HASH,在執行上傳操作前,向服務端發送請求,傳遞MD5值,后端進行文件檢索。若服務器中已存在該文件,便不進行后續的任何操作,上傳也便直接結束。大家一看就明白

    async handleUpload(resume) { if (!this.container.files) return; const filesArr = this.container.files; var tempFilesArr = this.tempFilesArr; for (let i = 0; i < tempFilesArr.length; i++) { const fileChunkList = this.createFileChunk( filesArr[tempFilesArr[i].index] ); // hash校驗,是否為秒傳+ tempFilesArr[i].hash = await this.calculateHash(fileChunkList);+ const verifyRes = await this.verifyUpload(+ tempFilesArr[i].name,+ tempFilesArr[i].hash+ );+ if (verifyRes.data.presence) {+ tempFilesArr[i].status = fileStatus.secondPass;+ tempFilesArr[i].uploadProgress = 100;+ } else { console.log('開始上傳切片文件----》', tempFilesArr[i].name); await this.uploadChunks(this.tempFilesArr[i]); } } } // 文件上傳之前的校驗: 校驗文件是否已存在 verifyUpload(fileName, fileHash) { return new Promise(resolve => { const obj = { md5: fileHash, fileName, ...this.uploadArguments //傳遞其他參數 }; instance .post('fileChunk/presence', obj) .then(res => { resolve(res.data); }) .catch(err => { console.log('verifyUpload -> err', err); }); }); }

    Done: 秒傳到這里也就完成了。

    后端處理

    文章好像有點長了,具體代碼邏輯就先不貼了,除非有人留言要求,嘻嘻,有時間再更新

    Node版

    請前往 https://github.com/pseudo-god... 查看

    JAVA版

    下周應該會更新處理

    PHP版

    1年多沒寫PHP了,抽空我會慢慢補上來

    待完善

    切片的大小:這個后面會做出動態計算的。需要根據當前所上傳文件的大小,自動計算合適的切片大小。避免出現切片過多的情況。文件追加:目前上傳文件過程中,不能繼續選擇文件加入隊列。(這個沒想好應該怎么處理。)

    更新記錄

    組件已經運行一段時間了,期間也測試出幾個問題,本來以為沒BUG的,看起來BUG都挺嚴重

    BUG-1:當同時上傳多個內容相同但是文件名稱不同的文件時,出現上傳失敗的問題。

    預期結果:第一個上傳成功后,后面相同的文文件應該直接秒傳

    實際結果:第一個上傳成功后,其余相同的文件都失敗,錯誤信息,塊數不對。

    原因:當第一個文件塊上傳完畢后,便立即進行了下一個文件的循環,導致無法及時獲取文件是否已秒傳的狀態,從而導致失敗。

    解決方案:在當前文件分片上傳完畢并且請求合并接口完畢后,再進行下一次循環。

    將子方法都改為同步方式,mergeRequest 和 uploadChunks 方法

    BUG-2: 當每次選擇相同的文件并觸發beforeUpload方法時,若第二次也選擇了相同的文件,beforeUpload方法失效,從而導致整個流程失效。

    原因:之前每次選擇文件時,沒有清空上次所選input文件的數據,相同數據的情況下,是不會觸發input的change事件。

    解決方案:每次點擊input時,清空數據即可。我順帶優化了下其他的代碼,具體看提交記錄吧。

    重寫了暫停和恢復的功能,實際上,主要是增加了暫停和恢復的狀態

    之前的處理邏輯太簡單粗暴,存在諸多問題?,F在將狀態定位在每一個文件之上,這樣恢復上傳時,直接跳過即可

    封裝組件

    寫了一大堆,其實以上代碼你直接復制也無法使用,這里我將此封裝了一個組件。大家可以去github下載文件,里面有使用案例 ,若有用記得隨手給個star,謝謝!

    偷個懶,具體封裝組件的代碼就不列出來了,大家直接去下載文件查看,若有不明白的,可留言。

    組件文檔

    Attribute

    Slot

    后端接口文檔:按文檔實現即可

    代碼地址:https://github.com/pseudo-god/vue-simple-upload

    接口文檔地址 https://docs.apipost.cn/view/0e19f16d4470ed6b#287746

    作者:Pseudo

    轉發鏈接:https://segmentfault.com/a/1190000023434864

    總結

    以上是生活随笔為你收集整理的dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产精品久久久久久久久久久久久久 | 综合在线色 | 中文字幕在线观看免费观看 | 精品国产日本 | 国产精品粉嫩 | 久草www| 婷婷丁香六月天 | 国产精品系列在线播放 | 欧美日韩激情网 | 日韩av免费一区二区 | 日韩精品一卡 | 亚洲码国产日韩欧美高潮在线播放 | 亚洲人成人在线 | 久久好看 | 婷婷在线视频 | 国产视频一级 | 国产小视频在线免费观看视频 | 日本bbbb摸bbbb | 中文字幕国语官网在线视频 | 国产亚洲视频中文字幕视频 | 国产精品12 | 一二三区在线 | www.狠狠插.com| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲在线视频网站 | 日韩欧美视频在线观看免费 | 伊人色**天天综合婷婷 | 国产精品不卡在线播放 | 国产精品女人久久久久久 | 日韩在线视频免费看 | 欧美亚洲另类在线视频 | 国产午夜精品av一区二区 | 国产黄色片在线免费观看 | 天天色视频 | 国产午夜精品一区二区三区欧美 | 国产一级电影免费观看 | 最近中文字幕 | 亚洲日韩精品欧美一区二区 | 国产福利久久 | 在线国产不卡 | 最新日韩电影 | www.色五月| 国产在线视频不卡 | 99精品视频在线 | 久久精品久久久久久久 | 91成人看片| 天天干.com | 中文字幕在线播放一区二区 | 精品国产欧美一区二区三区不卡 | 精品一二三四五区 | 欧美国产日韩在线观看 | 玖玖视频免费在线 | 97精品国产97久久久久久粉红 | 在线日韩亚洲 | 亚洲成人资源在线 | 97超碰人人 | 久久人人爽人人爽人人 | 日韩视频一区二区在线观看 | 欧美日韩亚洲一 | 亚洲精品高清视频在线观看 | 人人狠狠| 日韩精品免费在线播放 | 在线观看视频99 | 人人揉人人揉人人揉人人揉97 | 蜜臀一区二区三区精品免费视频 | 视频一区视频二区在线观看 | 在线观看91av | 在线视频精品 | 久久久久国产免费免费 | 最近日本mv字幕免费观看 | 国产成人在线播放 | 亚洲精品视频在线观看视频 | 91大神免费视频 | 91精品1区| www.久久com | 成年人在线电影 | 亚洲.www| 久久手机免费观看 | 少妇av片 | 天天干天天操天天干 | 国产无套视频 | 91九色性视频 | 色综合天天狠狠 | 亚洲天堂自拍视频 | 久草精品视频 | 午夜av免费 | 97成人精品视频在线观看 | 欧美色道 | 在线亚洲午夜片av大片 | 国产成人av综合色 | 中文字字幕在线 | 欧美一级欧美一级 | 日韩高清国产精品 | 五月婷婷中文字幕 | 日韩大陆欧美高清视频区 | 国产在线观看黄 | 免费欧美高清视频 | www.com.日本一级 | 日韩欧美在线综合网 | 日韩精品资源 | 一级成人免费视频 | 日本系列中文字幕 | 日日操夜夜操狠狠操 | av品善网| 中文字幕乱在线伦视频中文字幕乱码在线 | 成人久久18免费网站 | 免费电影一区二区三区 | 午夜10000| av在线8 | 欧美日韩免费在线观看视频 | 中文字幕第一 | 欧美性色黄 | 色婷婷色 | 亚洲欧美成人在线 | 人人爽人人看 | 久久亚洲精品国产亚洲老地址 | 碰天天操天天 | 天天操天天操天天操天天操天天操天天操 | 久久精品欧美日韩精品 | 91九色视频网站 | 国产精品一区二区三区久久久 | 91视频在线自拍 | 一区二区三区韩国免费中文网站 | 一区二区三区日韩视频在线观看 | 日韩精品中文字幕av | 91精品爽啪蜜夜国产在线播放 | 婷婷在线免费视频 | 丁香电影小说免费视频观看 | 精品国产一区二区三区免费 | 啪啪激情网 | 午夜色大片在线观看 | 亚洲午夜av久久乱码 | 成人h视频在线 | 美女黄频网站 | 免费观看成年人视频 | 婷婷av色综合 | 99综合电影在线视频 | 久久精品激情 | 日韩精品视频一二三 | 免费日韩一区二区三区 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 久久精品一区八戒影视 | www视频在线播放 | 在线亚洲欧美日韩 | 91av在线电影 | 欧美性免费 | 国产福利在线免费观看 | 99久久精品午夜一区二区小说 | 五月天久久综合网 | 日日夜夜狠狠干 | 色五婷婷 | 麻豆一区在线观看 | 五月天天在线 | 在线av资源 | 大型av综合网站 | 欧美一区二区三区在线观看 | 国产一区二区不卡在线 | 91麻豆高清视频 | 丝袜美腿在线 | 国产精品18久久久久vr手机版特色 | 亚洲精品黄色片 | 中文字幕日本电影 | 插插插色综合 | 爱爱av网| 超碰97中文 | 久久久久久久久久久久久国产精品 | 91在线看 | 中文字幕视频观看 | 国产最新视频在线观看 | 中文字幕高清 | 国产亚洲视频在线 | 超碰成人免费电影 | 精品九九久久 | 日韩欧美在线免费观看 | 精品不卡视频 | www.色婷婷.com | 性色av免费看 | 99久久精品国产一区二区成人 | 香蕉一区 | 天天摸天天操天天舔 | 国产精品乱码在线 | 在线观看黄色的网站 | 久久系列 | 国产偷国产偷亚洲清高 | 三级a毛片 | 免费看的黄网站软件 | 亚洲 综合 激情 | 国产精品99精品 | 成人免费看电影 | 手机在线黄色网址 | 99视频一区二区 | 精品国产乱码久久久久久天美 | 亚洲欧美综合精品久久成人 | 偷拍福利视频一区二区三区 | 中文字幕在线视频一区二区 | 日韩中文字幕免费视频 | 国产真实在线 | 欧美最爽乱淫视频播放 | 狠狠干夜夜 | 久久久国产一区二区三区 | 国产一级电影在线 | 亚洲三级国产 | 亚洲精品视频在线观看免费视频 | 久久精品99国产精品日本 | 亚洲精品国产精品国自产 | 免费日韩 精品中文字幕视频在线 | 最近中文字幕高清字幕在线视频 | 国产亚洲精品久久久久久电影 | 一级欧美一级日韩 | 免费h精品视频在线播放 | 亚洲老妇xxxxxx | 成 人 黄 色 视频播放1 | 亚洲黄网站 | 日韩精品一区二区在线 | 免费黄色av.| 日韩一区二区三免费高清在线观看 | 国产香蕉视频在线播放 | 制服丝袜亚洲 | 久久看看 | 欧女人精69xxxxxx | 中文字幕在线观看完整版 | 中文字幕二区三区 | 婷婷av综合 | 日本精品视频免费 | 精品久久久久久久久久国产 | 欧美成人一区二区 | 五月天av在线 | 日韩av中文在线 | 色综合久久88色综合天天 | 91综合久久一区二区 | 美女国产 | 国产精品成人自产拍在线观看 | 狠狠色丁香婷婷综合 | 91久久精品一区二区二区 | 日本精品一区二区三区在线播放视频 | 亚洲激情网站免费观看 | 在线视频观看91 | 69视频永久免费观看 | 精品国产一区二区三区四区在线观看 | 91精品在线观看视频 | 二区三区在线观看 | 日韩av一区二区在线影视 | 天天综合天天做天天综合 | 日本精品视频一区 | 草久草久| av不卡网站| 精品视频亚洲 | 国产三级午夜理伦三级 | 九九九九免费视频 | 日日夜夜精品 | 国产区 在线 | 在线观看免费视频你懂的 | 亚洲激情 在线 | 一区二区欧美激情 | 高清不卡一区二区三区 | 日韩精品一区二区三区外面 | 在线欧美日韩 | 精品人人爽 | 国产精品久久久久一区二区国产 | 色狠狠婷婷 | 亚洲四虎 | 天天干天天干天天操 | 麻豆视频免费入口 | 日韩欧美在线观看一区二区三区 | 国产91在线观 | 久久国产精品免费视频 | 综合黄色网 | 日韩一区二区在线免费观看 | 欧美一区二区伦理片 | 五月婷香蕉久色在线看 | 久久久免费毛片 | 久久精品91久久久久久再现 | 国产一区二区精品91 | 免费网址在线播放 | 久久久久北条麻妃免费看 | 一区二区视频在线免费观看 | 免费在线观看a v | 97超在线 | 天天操夜夜曰 | 国产精品资源在线观看 | 日韩中文字幕免费看 | 五月天婷婷狠狠 | 国产又黄又爽又猛视频日本 | 国产精品久久99综合免费观看尤物 | 在线看成人 | 91自拍成人 | 天天色天天爱天天射综合 | 久久久久久综合网天天 | 亚洲春色综合另类校园电影 | 国产午夜精品一区二区三区在线观看 | 久久精品国产免费观看 | 欧美日韩精品免费观看视频 | 午夜狠狠干 | 国产男女无遮挡猛进猛出在线观看 | 欧美调教网站 | 天天干天天射天天操 | 国产在线观看,日本 | 日韩欧美xxxx| 久色网 | 九九热免费在线观看 | 最近最新中文字幕视频 | 久热电影| 99精品视频在线看 | 日本久久高清视频 | 丁香在线观看完整电影视频 | 欧美在线你懂的 | 午夜 久久 tv | 天天干,天天插 | 九九精品视频在线看 | 久久综合久久综合这里只有精品 | 中文字幕在线观看网址 | 亚洲免费资源 | 免费在线成人av | 久久综合久久八八 | 五月激情久久 | 亚洲一二三久久 | 激情图片qvod| 欧美在线观看禁18 | 中文字幕刺激在线 | 成人在线免费看视频 | 久久精品一区八戒影视 | 国产韩国日本高清视频 | 国产精品免费看久久久8精臀av | 国产一区久久久 | 色在线高清 | www日韩精品 | 国产精品免费看久久久8精臀av | 最新超碰在线 | 国产日韩在线一区 | 久久精品网站视频 | 欧美日韩中文字幕综合视频 | 精品国产视频在线观看 | 二区中文字幕 | 久久九九网站 | 久久久精品99 | 9999毛片 | 狠狠综合久久av | 日韩黄色免费在线观看 | 亚洲综合五月 | 色婷婷六月 | 久久99精品久久久久久三级 | 免费亚洲一区二区 | 中文十次啦 | 久久午夜国产 | av福利第一导航 | 九色在线 | 色综合咪咪久久网 | 人人射 | 91精品国产高清 | 狠狠色丁香婷婷综合欧美 | 在线免费av网| 在线免费观看黄色小说 | 亚洲一区二区视频在线播放 | 色综合天 | 中文字幕在线专区 | 久久久影院一区二区三区 | 午夜成人免费电影 | 中文字幕视频一区 | 91九色国产在线 | 大胆欧美gogo免费视频一二区 | 日韩在线小视频 | 色中色综合 | 久久久网页 | www中文在线| 日韩久久电影 | 精品电影一区二区 | 国产99久久99热这里精品5 | 亚洲最大色| 国产无套精品久久久久久 | 久久精品—区二区三区 | 在线影视 一区 二区 三区 | 亚洲国产偷 | 久久成人资源 | 欧美高清视频不卡网 | 婷婷日日| 国产日产精品一区二区三区四区 | 久久久久久久久久免费视频 | 欧美色图亚洲图片 | 亚洲综合在线五月天 | 天天干天天操av | 91豆花在线| 久草久视频 | 黄色成人影视 | 日韩欧美在线综合网 | 日韩在线免费高清视频 | 国产精品久久久久久久99 | 色综合激情久久 | 国产一区二区高清不卡 | www.夜夜夜| 久久这里只有精品首页 | 四虎在线观看视频 | 国产精品亚洲a | 91资源在线 | 91视频在线观看下载 | 欧美日本一区 | 欧美日高清视频 | 91久久黄色 | 中文字幕电影一区 | www.午夜色.com| 九色91福利 | 精品国产综合区久久久久久 | 久久久久久久久久久高潮一区二区 | 91精品国产自产91精品 | 国产在线 一区二区三区 | 久久 亚洲视频 | 久久国语露脸国产精品电影 | 亚洲视频久久久 | 天天做天天爱天天综合网 | 99精品国产免费久久久久久下载 | 黄色毛片在线观看 | 亚洲视频精选 | av免费观看在线 | 国产精品二区三区 | 午夜视频在线观看网站 | 国产成人三级 | 午夜视频二区 | 成人免费一级 | 成片视频免费观看 | 一级黄视频 | 最近久乱中文字幕 | 免费观看第二部31集 | 就要干b | 国产精品一区久久久久 | 嫩草av在线 | 99在线观看免费视频精品观看 | 91粉色视频 | 色综合天天做天天爱 | 高清av在线 | 国产福利91精品一区二区三区 | 日韩精品一区二区在线观看视频 | 黄色大全免费网站 | 欧美一级裸体视频 | 在线日本看片免费人成视久网 | 九九免费在线观看 | 蜜臀av性久久久久av蜜臀三区 | 久久久免费视频播放 | 欧美在线视频一区二区三区 | 亚洲视频电影在线 | 中文字幕在线色 | 久久99国产精品免费网站 | 国产黄在线看 | 狠狠久久| 特级a毛片 | 亚洲精品女人 | 精品产品国产在线不卡 | 天天摸夜夜添 | 欧美作爱视频 | 国产麻豆成人传媒免费观看 | 精品久久久免费 | 天天伊人网 | 18久久久久| 欧美analxxxx| 国产精品久久久久久一区二区 | 午夜视频99 | 91精品久久久久久综合五月天 | 亚洲国产三级在线观看 | 麻豆国产精品永久免费视频 | 97av在线视频 | 五月天,com | 99久久国产免费,99久久国产免费大片 | 99热在线国产精品 | av电影在线免费 | 国产五月色婷婷六月丁香视频 | 天天干天天拍天天操天天拍 | 伊人六月 | 欧美日韩一区二区三区在线免费观看 | 成人资源在线 | 操操操av | 韩日精品在线 | 日韩欧美一区二区三区黑寡妇 | 久久久九色精品国产一区二区三区 | 韩日电影在线观看 | 久久久99精品免费观看 | 国产自产在线视频 | 国产人成免费视频 | 91大神免费在线观看 | 日韩欧美亚洲 | 狠狠狠色| 在线中文字母电影观看 | 在线小视频你懂得 | 毛片在线播放网址 | 中文字幕精品www乱入免费视频 | 久久麻豆精品 | 精品欧美一区二区精品久久 | 美女很黄免费网站 | 一区二区视 | 中文字幕一区二 | 久久久夜色 | 久草在线手机观看 | 99热在线精品观看 | 99在线热播精品免费99热 | 丁香久久久 | 91日韩免费 | 欧美日韩一区三区 | 亚洲精品综合欧美二区变态 | 国产色视频一区二区三区qq号 | 91av在线免费观看 | 日韩av一卡二卡三卡 | 涩涩网站在线 | 久久久免费观看 | 91精品久久久久久久91蜜桃 | 天堂av在线 | 久久久久久伊人 | 色综合久久精品 | 色停停五月天 | 国产免费xvideos视频入口 | 久久久久久久久久久久电影 | 成人97视频 | 人人澡人摸人人添学生av | 欧洲av在线 | 一本一本久久a久久精品综合小说 | 成人在线播放网站 | 日韩电影在线观看一区二区 | 精品久久久久久综合 | 亚洲免费精彩视频 | 色噜噜日韩精品欧美一区二区 | 在线视频第一页 | 国产视频高清 | av大全在线播放 | 国产精品久久久久av | 中文字幕高清 | 91热视频 | 久久99视频免费观看 | se婷婷| 国产大片黄色 | 婷婷成人亚洲综合国产xv88 | 久操操| 久久资源总站 | 激情视频国产 | 日韩中文字幕在线看 | 久久综合桃花 | 久久久久国产精品视频 | 国产成人精品a | 亚洲视频大全 | 亚洲精品综合一二三区在线观看 | 黄色成人在线观看 | 日韩电影一区二区三区在线观看 | 玖玖精品在线 | 中文字幕在线观看三区 | 日本99热| 在线观看黄网 | 精品视频 | 91麻豆精品国产91久久久更新时间 | 最近免费在线观看 | 99久久久久 | 日韩久久电影 | 色综合久久久久久中文网 | 日韩黄色中文字幕 | 欧美日韩xx | 日韩免费在线观看网站 | 在线a人片免费观看视频 | 又黄又爽又色无遮挡免费 | 91视频 - 114av| 欧美最爽乱淫视频播放 | 久艹视频在线免费观看 | 国产精品久久久久久婷婷天堂 | 国产精品久久婷婷六月丁香 | 天天操天天干天天玩 | 成人在线免费观看视视频 | 九色免费视频 | 99热手机在线观看 | 波多野结衣在线播放视频 | 久久视频国产精品免费视频在线 | 欧美乱大交 | 成人在线免费视频观看 | 在线视频日韩精品 | 91av中文| 亚洲春色成人 | 亚洲视频在线播放 | 蜜桃av观看 | 亚洲精品乱码久久久久久按摩 | 亚洲国产日韩精品 | av先锋中文字幕 | 黄色电影小说 | 99视频久久| 91网址在线看| 欧美韩日在线 | 在线免费成人 | 一级成人免费 | 日本黄色a级大片 | 中文字幕在线观看一区二区三区 | 伊人狠狠| 在线看片日韩 | 亚洲日本精品视频 | 九九热在线免费观看 | 久久影视一区二区 | www国产亚洲精品久久麻豆 | 激情在线免费视频 | 人人爽人人爽人人片 | 亚洲一区动漫 | 天天干夜夜爱 | 亚洲区二区 | 手机av资源 | 亚洲综合小说电影qvod | 免费国产一区二区视频 | 最近中文字幕mv免费高清在线 | 久久精品电影院 | 亚洲成人黄 | 国产成人一二三 | 天无日天天操天天干 | 又爽又黄又无遮挡网站动态图 | 国产精品二区在线观看 | 精品免费观看视频 | 91成人在线网站 | 91视频在线国产 | 亚洲日本国产精品 | 91视频免费看 | 欧美日韩不卡一区 | 丰满少妇在线观看资源站 | 免费av在线| 国产日产精品久久久久快鸭 | 欧美大片大全 | 9i看片成人免费看片 | 久久久久久麻豆 | 又黄又网站 | 在线观看av免费 | 欧美成人69av | 国产亚洲精品xxoo | 在线看小早川怜子av | 日韩精品一区电影 | 国产精品正在播放 | 国产精品网红直播 | 久久久久国产精品免费免费搜索 | 黄色毛片一级片 | 婷婷丁香六月天 | 在线黄色免费av | 日p在线观看 | 久久久久久久网站 | 久久免费视频5 | 成人免费影院 | 日韩精品久久中文字幕 | 高清在线观看av | 热久久国产精品 | 久久一久久 | 99色在线观看视频 | 美女久久久久久久久久 | 国产视频精品免费 | 欧美久久精品 | 日韩视频一区二区三区 | 久久久亚洲麻豆日韩精品一区三区 | 国产成人久久av免费高清密臂 | 国产高清视频免费观看 | 欧美专区日韩专区 | 一级做a爱片性色毛片www | 色天堂在线视频 | 伊人天天综合 | 亚洲精品国产区 | 午夜av在线电影 | 日本韩国中文字幕 | 91精品欧美 | 欧美色精品天天在线观看视频 | 黄网站色成年免费观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 91网址在线观看 | 国产v欧美 | 国产福利一区二区三区在线观看 | 91精品伦理 | 五月综合激情网 | 亚洲精品国产精品国自产在线 | 国产老太婆免费交性大片 | 97视频在线观看成人 | 99久久免费看| 最新亚洲视频 | 成人欧美一区二区三区在线观看 | 中文字幕乱码视频 | 9999亚洲 | 日韩av三区| 久久婷婷一区二区三区 | 激情文学综合丁香 | 最近中文字幕免费视频 | 国产aaa毛片 | 国产高清在线免费 | 高清av免费观看 | 92精品国产成人观看免费 | 国产系列 在线观看 | 欧美日韩不卡一区二区三区 | 超级碰碰碰碰 | 欧美日韩不卡一区 | 男女男视频 | 人人射av | 久草视频免费观 | 成人精品电影 | 一区中文字幕电影 | 五月婷在线 | 亚洲理论电影网 | 中文字幕色在线视频 | 国产又粗又硬又爽的视频 | 国产精品久久久久久电影 | av一级在线观看 | 91视频在线免费下载 | 蜜臀av性久久久久蜜臀av | 91免费试看| 久久精品免费看 | 中文字幕大全 | 免费看v片网站 | 96视频免费在线观看 | 中文字幕免费高清在线观看 | 九九九九九九精品 | 99久久精品国产亚洲 | 日韩欧美视频二区 | 日韩在线观看视频免费 | 99精品免费 | 国产a国产a国产a | 激情在线网址 | 亚洲免费在线播放视频 | 中文字幕在线播放第一页 | 国产精品尤物视频 | 中文字幕在线观看完整版 | 欧美在线不卡一区 | 久插视频 | 天天干天天操天天射 | 国产91精品在线观看 | 激情五月开心 | 99精品电影 | 亚洲国内在线 | 2023天天干 | 欧美a级在线免费观看 | 91九色在线播放 | 在线看国产精品 | 久久精品国产免费看久久精品 | 久久国产视频网 | 欧美午夜一区二区福利视频 | 91人人澡人人爽 | 日韩精品一区二区三区免费观看 | 99这里只有精品视频 | 丝袜美腿av | 五月天综合| 国产精品综合av一区二区国产馆 | 国产高清视频色在线www | 在线日韩 | 精品国内自产拍在线观看视频 | 久久国产精品久久w女人spa | 91人人人| 精品国产一区二区三区免费 | 91色欧美 | 欧美aaa视频 | 亚洲.www | 成人 国产 在线 | 一区二区在线不卡 | 高清av中文在线字幕观看1 | 开心丁香婷婷深爱五月 | av线上看 | 日韩精品一区二区三区三炮视频 | 中文字幕在线观看三区 | 超碰个人在线 | 久久99精品国产99久久6尤 | 色网站视频 | 就要干b | 久久久久久久av麻豆果冻 | 久久黄色小说 | 91在线资源 | 麻豆视频免费入口 | 伊人天天狠天天添日日拍 | 国产中文自拍 | 久久久影院一区二区三区 | av一区在线播放 | 欧美久久久久久久久久久久久 | 亚洲国产免费看 | www.xxxx变态.com| 亚洲成aⅴ人在线观看 | 免费在线一区二区 | 男女激情片在线观看 | 亚洲欧美日韩国产一区二区三区 | 日本特黄一级 | 久久精品久久久精品美女 | 国产又粗又硬又爽的视频 | 中文字幕一区二区在线播放 | 99久久久成人国产精品 | 欧美乱码精品一区二区 | 欧美成人黄色 | 日韩精品2区 | 五月婷婷一区 | 久久99日韩 | 97成人精品区在线播放 | 免费高清在线视频一区· | 国产一级二级三级在线观看 | 久久黄色网址 | 久久精品99精品国产香蕉 | 一区二区三区精品在线视频 | 少妇激情久久 | 欧美精品在线观看免费 | 91视频免费国产 | 最新日韩在线观看 | 成年人在线看片 | www.xxxx变态.com | 国产99自拍 | 国产999视频在线观看 | 久久久精品欧美 | 日韩精品亚洲专区在线观看 | 国产精品久久久久永久免费 | 日本久久99 | 国内精品久久久久国产 | 91成人网在线播放 | 国产精品影音先锋 | 久久一区国产 | 国产18精品乱码免费看 | 日本动漫做毛片一区二区 | 97涩涩视频| 日本高清dvd | 日韩欧美在线一区 | 91av视频在线免费观看 | 日韩在线视频精品 | 91av成人| 99热网站| 精品亚洲视频在线观看 | 99精品视频免费看 | 美女黄频视频大全 | 免费视频久久久久 | 国产中文字幕视频在线观看 | 国产成人性色生活片 | 99色在线观看视频 | a级国产片 | 国产精品999久久久 久产久精国产品 | 国产精品成人一区二区 | av电影在线播放 | 国产精品一区二区三区电影 | 国产综合在线观看视频 | 亚洲精品黄色在线观看 | 四虎在线免费观看 | 视频在线观看入口黄最新永久免费国产 | 美女网站在线播放 | 网站免费黄 | 国产精品每日更新 | 性色av香蕉一区二区 | 在线观看你懂的网址 | 99视频久久| www日韩精品 | 日本精品视频在线观看 | 亚洲少妇自拍 | 国产精品美女视频 | 激情 亚洲 | 国产精品免费观看在线 | 日本精品中文字幕在线观看 | 亚洲欧美国产精品 | 992tv在线观看 | 国内成人av| 中文字幕一区二区三区四区 | 色五月色开心色婷婷色丁香 | 国产+日韩欧美 | 国产小视频精品 | 成人免费在线视频 | 日本在线视频一区二区三区 | 精品久久久久久电影 | 欧美一区三区四区 | 久久99国产精品久久99 | 精品美女久久久久久免费 | 亚洲精品大片www | 国产91精品一区二区麻豆网站 | 亚洲精品视频一二三 | 久草在线资源观看 | 97人人超| 亚洲aⅴ在线 | 国产精品18久久久久久久久久久久 | 粉嫩av一区二区三区四区在线观看 | 中文字幕在线观看完整版 | av福利在线导航 | 亚洲欧洲一区二区在线观看 | 在线探花| 一级做a爱片性色毛片www | 亚洲精品国产综合99久久夜夜嗨 | 欧美国产高清 | 精品国产成人av | 怡红院久久 | 亚洲精品福利视频 | 在线免费观看国产精品 | 精品久久久亚洲 | 97在线视频免费播放 | 99国产精品久久久久久久久久 | 日韩啪啪小视频 | 日韩欧美一区视频 | 精品国产免费看 | 国产亚洲精品久久久久久网站 | 久久精品亚洲国产 | 视频在线在亚洲 | 成人在线超碰 | a'aaa级片在线观看 | 国产在线视频资源 | av高清一区| 亚洲免费黄色 | 日韩精品一区二区三区三炮视频 | 日韩精品一区二区三区免费观看视频 | 最近av在线 | 国产精品999久久久 久产久精国产品 | 精品视频在线免费观看 | 91成人免费在线 | 国产97碰免费视频 | 国产精品成人一区二区 | 天天操天天射天天爱 | 欧美激情综合五月色丁香 | 国产日韩欧美在线观看 | 狂野欧美激情性xxxx欧美 | 色综合久久88色综合天天人守婷 | 国产手机av | 狠狠干.com| 天天干天天干天天干天天干天天干天天干 | 免费美女久久99 | 一本色道久久综合亚洲二区三区 | 久久手机免费观看 | 在线观看日韩视频 | 国产精品视频你懂的 | 成人国产一区 | 国产一级在线免费观看 | 亚洲成人精品影院 | 男女靠逼app| 97国产精品 | 91在线看视频免费 | 欧美日韩综合在线观看 | 国产精品久久久久久久久岛 | 欧美精品三级在线观看 | www.黄色片网站 | 免费看毛片在线 | 97av.com| 精品久久久久久久久久国产 | 激情片av| 天天综合网天天综合色 | 国产亚洲一区 | av在线电影免费观看 | 午夜精品久久久久久久久久久久久久 | 国产美女精品在线 | 精品一二三四在线 | 91电影福利 | 精品国产_亚洲人成在线 | 午夜久久电影网 | 在线国产片 | 九九热久久免费视频 | 久久伊99综合婷婷久久伊 | 在线观看免费视频你懂的 | 九九免费观看视频 | 日韩av网址在线 | 国产精品美女久久久久aⅴ 干干夜夜 | 久草在线视频资源 | 欧美日本国产在线观看 | 8090yy亚洲精品久久 | 成人精品视频 | 五月婷婷六月丁香在线观看 | 尤物一区二区三区 | 国产成人av综合色 | 日批视频在线 | 午夜狠狠操 | 久久撸在线视频 | 91在线精品视频 | 人人搞人人干 | 国产午夜精品一区二区三区嫩草 | 国产91大片 | 久久网站免费 | 国产亚洲精品久久久久久久久久久久 | 九九九九色 | 综合网五月天 | 欧美二区在线播放 | 在线小视频 | 日韩精品视频在线观看网址 | 欧美在线视频日韩 | 中文字幕视频观看 | 日韩成人精品一区二区 | wwwwwww色| 亚州av成人 | 丁香在线观看完整电影视频 | 在线激情影院一区 | 久久久久北条麻妃免费看 | 日韩欧美在线免费观看 | 天堂av最新网址 | 亚洲精品国产品国语在线 | 97夜夜澡人人双人人人喊 | 日韩激情视频 | 日韩在线一区二区免费 | 久草精品在线播放 | 麻豆传媒一区二区 | 久久激情精品 | 五月开心六月婷婷 | 福利av在线| 91尤物国产尤物福利在线播放 | 国产精品九九九 | 久久影院精品 | 亚洲国产精品久久久 | 欧产日产国产69 | 99在线视频免费观看 | 国产精品不卡av | 最近中文字幕高清字幕在线视频 | 娇妻呻吟一区二区三区 | 午夜精品久久久久久久久久 | 日韩在线二区 | 操碰av | 美女一级毛片视频 | 综合色播 | 丁香六月婷婷激情 | 在线国产视频 | 国产精品入口麻豆 | 国产精品免费观看久久 | 国产96在线观看 | 国产精品久久久久aaaa | 国产99一区视频免费 | 亚州av网站| 久久艹艹 | 狠狠色狠狠综合久久 | 天天干,夜夜操 | av日韩中文| 在线免费观看成人 | 久久综合毛片 |