精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于業(yè)務(wù)場(chǎng)景下的圖片/文件上傳方案總結(jié)

開(kāi)發(fā) 前端
圖片/文件上傳組是企業(yè)項(xiàng)目開(kāi)發(fā)中必不可少的環(huán)節(jié)之一, 但凡涉及到用戶模塊的都會(huì)有圖片/文件上傳需求, 在很多第三方組件庫(kù)(ant desigin, element ui)中它也是基礎(chǔ)組件之一.

[[426497]]

前言

圖片/文件上傳組是企業(yè)項(xiàng)目開(kāi)發(fā)中必不可少的環(huán)節(jié)之一, 但凡涉及到用戶模塊的都會(huì)有圖片/文件上傳需求, 在很多第三方組件庫(kù)(ant desigin, element ui)中它也是基礎(chǔ)組件之一. 接下來(lái)筆者就來(lái)帶大家從零實(shí)現(xiàn)一款圖片/文件上傳組件以及擴(kuò)展出更強(qiáng)大的上傳組件.

你將收獲

  • 常用的圖片上傳功能實(shí)現(xiàn)方案
  • 手寫一個(gè)圖片/文件上傳組件
  • 如何將裁剪功能集成到上傳組件中
  • 內(nèi)容平臺(tái)/可視化平臺(tái)下的圖片自治方案
  • 如何擴(kuò)展出更強(qiáng)大的圖片上傳方案

正文

作為一名前端工程師, 解決項(xiàng)目問(wèn)題是我們的基本職責(zé)之一, 我們可以利用已掌握的知識(shí)去解決項(xiàng)目開(kāi)發(fā)中的問(wèn)題和需求, 這也是我們職業(yè)生涯必將經(jīng)歷的第一個(gè)階段,即——適應(yīng)期. 如果我們想繼續(xù)晉升, 我們就需要不斷的打怪升級(jí),掌握各種技能, 這樣我們才能在未來(lái)遇到問(wèn)題時(shí)采用最佳的方案高效的解決問(wèn)題, 也就是第二個(gè)階段——發(fā)展期.

為了更快的進(jìn)入發(fā)展期, 我們需要不斷的提升自己的技術(shù)深度和廣度, 能縱向考慮到問(wèn)題的本質(zhì)也能橫向的對(duì)問(wèn)題提出多種解決方案, 最終選擇一種最優(yōu)方案來(lái)實(shí)現(xiàn). 要實(shí)現(xiàn)這一點(diǎn),我們需要對(duì)問(wèn)題做深度思考和復(fù)盤, 接下來(lái)筆者將介紹幾種常用的圖片上傳方案,來(lái)擴(kuò)展大家的廣度.

1. 常用的圖片上傳方案

從web1.0時(shí)代開(kāi)始, 我們用的最多的上傳方案就是form表單, 我們只需要在form內(nèi)寫好各種input(輸入型元素), 并定義好上傳的服務(wù)器地址(action)即可.形式類似如下:

  1. <form action="/xuxiaoxi/form/post"
  2.     <div class="form-item"><input type="text" /></div> 
  3.     <div class="form-item"><input type="passward" /></div> 
  4.     <div class="form-item"><input type="file" /></div> 
  5.     <div class="form-item"><input type="submit" /></div> 
  6. </form> 

在XHR技術(shù)還沒(méi)普及時(shí), 我們大多會(huì)選擇上述方案, 唯一的缺點(diǎn)就是提交之后會(huì)刷新頁(yè)面, 用戶體驗(yàn)不太好, 還可能造成局部數(shù)據(jù)丟失, 但仍然有解決方案, 就是form + iframe技術(shù).

1.1 form + iframe方案

form + iframe方案的基本思路就是我們提交動(dòng)作是在父頁(yè)面觸發(fā), 但是form表單指向?yàn)閕frame, 這樣可以實(shí)現(xiàn)局部刷新, 現(xiàn)在有些場(chǎng)景仍然在使用該方案, 具體原理如下:

以上兩種方案都可以實(shí)現(xiàn)傳統(tǒng)form提交下的局部刷新功能, 不過(guò)方案一需要單獨(dú)維護(hù)iframe表單, 所以我呢一般采用方案二, 而且兼容性都可以達(dá)到IE9(雖然現(xiàn)在來(lái)說(shuō)兼容IE瀏覽器意義不大, 但是還是要了解一下)

1.2 ajax + formData方案

在XHR盛行之后,我們可以輕松使用ajax來(lái)實(shí)現(xiàn)異步請(qǐng)求了, 對(duì)于文件上傳, 我們也可以更靈活的使用ajax和formData來(lái)實(shí)現(xiàn), 逐漸脫離了對(duì)原生form表單的依賴.

  • FormData 對(duì)象用以將數(shù)據(jù)編譯成鍵值對(duì),以便用XMLHttpRequest來(lái)發(fā)送數(shù)據(jù)。其主要用于發(fā)送表單數(shù)據(jù),但亦可用于發(fā)送帶鍵數(shù)據(jù)(keyed data),而獨(dú)立于表單使用。如果表單enctype屬性設(shè)為multipart/form-data ,則會(huì)使用表單的submit()方法來(lái)發(fā)送數(shù)據(jù),從而,發(fā)送數(shù)據(jù)具有同樣形式。

我們先來(lái)看一個(gè)簡(jiǎn)單的使用formData上傳文件的例子:

  1. let formData = new FormData(); 
  2.  
  3. // HTML 文件類型input,由用戶選擇 
  4. formData.append("userfile", fileInputElement.files[0]); 
  5.  
  6. let request = new XMLHttpRequest(); 
  7. request.open("POST""http://http://io.nainor.com/h5/form"); 
  8. request.send(formData); 

以上短短5行代碼就實(shí)現(xiàn)了將文件通過(guò)formData的方式上傳給了服務(wù)器, 是不是很簡(jiǎn)單呢? 筆者之前的文章 基于react/vue開(kāi)發(fā)一個(gè)專屬于程序員的朋友圈應(yīng)用就采用了該方案, 感興趣的可以學(xué)習(xí)研究一下.

如果要實(shí)現(xiàn)多文件上傳也非常簡(jiǎn)單, 這里我們以axios為例, 具體實(shí)現(xiàn)如下:

  1. const formData = new FormData() 
  2. for(let i=0; i< files.length; i++) { 
  3.   formData.append(`file_${i+1}`, files[i].file) 
  4. axios({ 
  5.   method: 'post'
  6.   url: '/files/upload/tx'
  7.   data: formData, 
  8.   headers: { 
  9.       'Content-Type''multipart/form-data' 
  10.   } 
  11. }); 

這里要注意多文件上傳要在請(qǐng)求的http header中設(shè)置 Content-Type 為 multipart/form-data . 當(dāng)然大家還可以基于以上原理實(shí)現(xiàn)更符合自身業(yè)務(wù)需求的文件上傳組件, 比如預(yù)覽, 限流等.

1.3 第三方組件實(shí)現(xiàn)

為了更高效快速的開(kāi)發(fā)業(yè)務(wù), 我們有時(shí)候也可以選擇第三方比較成熟的方案, 比如antd的upload組件, 比如element ui的上傳組件, 這里筆者總結(jié)了幾個(gè)比較好用且強(qiáng)大的方案, 大家可以感受一下:

  • antd/element 的 upload 組件
  • FilePond 可以上傳任何內(nèi)容,并能夠優(yōu)化圖像以加快上傳速度,同時(shí)提供順暢的用戶體驗(yàn)
  • Web Uploader 百度WebFE(FEX)團(tuán)隊(duì)開(kāi)發(fā)的一個(gè)簡(jiǎn)單的以HTML5為主,F(xiàn)LASH為輔的現(xiàn)代文件上傳組件
  • vue-simple-uploader 基于vue的強(qiáng)大美觀的文件上傳組件

我們可以通過(guò)上述提供的第三方組件庫(kù), 結(jié)合自己服務(wù)端的配置,就可以輕松實(shí)現(xiàn)強(qiáng)大的上傳組件了.

2. 將裁剪功能集成到圖片上傳組件

對(duì)于圖片上傳組件來(lái)說(shuō), 我們往往不能確定用戶上傳的到底是什么, 所以我們要提前約束, 比如說(shuō)對(duì)圖片大小, 圖片格式, 圖片比例等進(jìn)行限制以符合我們的業(yè)務(wù)標(biāo)準(zhǔn). 圖片大小和圖片格式的限制非常好實(shí)現(xiàn), 但是對(duì)于圖片比例, 這個(gè)我們不能期望用戶自己來(lái)處理, 因?yàn)檫@樣會(huì)極大的增加用戶使用網(wǎng)站的負(fù)擔(dān), 所以我們可以提供一種功能, 讓用戶在線切圖. 如下圖所示:

以上截圖來(lái)自于H5-Dooring在線編輯器的圖片上傳組件, 在用戶上傳之后我們會(huì)出現(xiàn)圖片裁切界面, 我們會(huì)指定圖片的比例, 讓用戶自由裁切. 筆者將基于antd的upload組件配合antd-img-crop來(lái)帶大家實(shí)現(xiàn)在線切圖功能. 具體代碼實(shí)現(xiàn)如下:

  1. import React, { useState } from 'react'
  2. import { Upload } from 'antd'
  3. import ImgCrop from 'antd-img-crop'
  4.  
  5. const Demo = () => { 
  6.   const [fileList, setFileList] = useState([ 
  7.     { 
  8.       uid: '-1'
  9.       name'image.png'
  10.       status: 'done'
  11.       url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png'
  12.     }, 
  13.   ]); 
  14.  
  15.   const onChange = ({ fileList: newFileList }) => { 
  16.     setFileList(newFileList); 
  17.   }; 
  18.  
  19.   const onPreview = async file => { 
  20.     let src = file.url; 
  21.     if (!src) { 
  22.       src = await new Promise(resolve => { 
  23.         const reader = new FileReader(); 
  24.         reader.readAsDataURL(file.originFileObj); 
  25.         reader.onload = () => resolve(reader.result); 
  26.       }); 
  27.     } 
  28.     const image = new Image(); 
  29.     image.src = src; 
  30.     const imgWindow = window.open(src); 
  31.     imgWindow.document.write(image.outerHTML); 
  32.   }; 
  33.  
  34.   return ( 
  35.     <ImgCrop rotate> 
  36.       <Upload 
  37.         action="https://www.mocky.io/v2/5cc8019d300000980a055e76" 
  38.         listType="picture-card" 
  39.         fileList={fileList} 
  40.         onChange={onChange} 
  41.         onPreview={onPreview} 
  42.       > 
  43.         {fileList.length < 5 && '+ Upload'
  44.       </Upload> 
  45.     </ImgCrop> 
  46.   ); 
  47. }; 
  48.  
  49. ReactDOM.render(<Demo />, mountNode); 

以上只是一個(gè)基本的裁切并上傳圖片的例子, 當(dāng)然antd-img-crop還提供了更多靈活的配置來(lái)方便我們?cè)O(shè)計(jì)更靈活強(qiáng)大的裁切效果. 當(dāng)然我們還可以使用react-cropper來(lái)實(shí)現(xiàn), 它提供了更靈活的裁切控制以及裁切實(shí)時(shí)預(yù)覽功能, 如下圖所示:

3. 內(nèi)容平臺(tái)/可視化平臺(tái)下的圖片自治

對(duì)于內(nèi)容平臺(tái)或者可視化平臺(tái)而且, 單純的上傳圖片還不能滿足用戶的需求, 因?yàn)閮?nèi)容/可視化平臺(tái)更加注重圖片的選擇和使用, 對(duì)圖片要求也很高, 用戶自己上傳畢竟資源有限, 往往不能達(dá)到用戶對(duì)內(nèi)容發(fā)布的需求或者可視化設(shè)計(jì)的需求, 所以往往在這類平臺(tái)中會(huì)提供圖片素材庫(kù)這一功能, 用戶可以在素材庫(kù)中搜索海量圖片以滿足自己的需求, 而往往這樣, 才更能留住用戶, 增加用戶粘性.

基于以上場(chǎng)景產(chǎn)品經(jīng)理往往會(huì)提出這樣的需求: 能不能提供可選方案, 用戶既能自己上傳圖片, 也能使用我們提供的圖片庫(kù)資源呢? 這個(gè)時(shí)候有經(jīng)驗(yàn)的前端往往會(huì)說(shuō)一句: 安排!

在設(shè)計(jì)該功能之前我們往往要先參考其他已有實(shí)現(xiàn), 這里我們舉幾個(gè)例子, 如下圖所示:

以上案例中我們可以發(fā)現(xiàn)在用戶上傳圖片的時(shí)候都會(huì)提供兩個(gè)可選選項(xiàng), 一個(gè)是本地上傳, 一個(gè)是直接在圖片庫(kù)中選擇, 所以我們的方案也類似, 可以統(tǒng)一將圖片庫(kù)封裝到文件上傳組件中作為通用功能, 也可以組合式封裝, 各自可以獨(dú)立使用也可以組合使用.

對(duì)于H5-Dooring對(duì)圖片庫(kù)的封裝, 使用了將其作為通用服務(wù)來(lái)實(shí)現(xiàn), 也就是但凡使用了上傳組件,一定會(huì)出現(xiàn)可選的從圖片庫(kù)選擇按鈕. 實(shí)現(xiàn)方案也很簡(jiǎn)單, 就是在upload組件中擴(kuò)展一層, 使用Modal+Tab來(lái)做圖片選擇的界面, 當(dāng)選擇完成后將圖片的地址手動(dòng)設(shè)置到upload組件中即可. 代碼如下:

  1. handleImgSelected= () => { 
  2.   const fileList = [ 
  3.     { 
  4.       uid: uuid(8, 16), 
  5.       name'h5-dooring圖片庫(kù)'
  6.       status: 'done'
  7.       url: this.state.curSelectedImg, 
  8.     }, 
  9.   ]; 
  10.   this.props.onChange && this.props.onChange(fileList); 
  11.   this.setState({ fileList, wallModalVisible: false }); 
  12. }; 

這里用了antd的form組件的受控模式.

4. 圖片上傳組件擴(kuò)展

上面介紹的方案對(duì)于基本使用場(chǎng)景完全夠用了, 但是如果是內(nèi)容網(wǎng)站或者可視化搭建平臺(tái), 由于我們的配置可能會(huì)隨時(shí)分發(fā)到公網(wǎng), 這就會(huì)涉及到內(nèi)容安全的問(wèn)題, 如果一旦用戶配置了違法的圖片信息, 那么對(duì)于平臺(tái)提供上可能會(huì)受到牽連, 所以我們還需要提供一套完善的審核機(jī)制, 比如用戶配置好或者發(fā)布好內(nèi)容后, 需要進(jìn)過(guò)審核才能正式發(fā)布到線上, 但是完全依賴人工審核效率又比較低, 所以這個(gè)時(shí)候我們就需求找到機(jī)器自動(dòng)化審核方案了. 比如阿里云和騰訊云等都提供了圖片鑒別等服務(wù), 我們可以將這些服務(wù)集成到我們的組件中, 來(lái)實(shí)現(xiàn)真正的業(yè)務(wù)自治能力, 這樣才能更安全的進(jìn)行企業(yè)化經(jīng)營(yíng)和開(kāi)發(fā).

還有一個(gè)需求就是用戶對(duì)于上傳的圖片有編輯需求, 我們還可以提供對(duì)圖片的在線編輯功能, 類似于如下方案:

我們能讓用戶有能力對(duì)自己選擇的圖片進(jìn)行自行設(shè)計(jì), 加水印等能力, 這樣是不是更有意思呢?

5. 總結(jié)

以上教程筆者已經(jīng)集成到H5-Dooring中,對(duì)于一些更復(fù)雜的交互功能,通過(guò)合理的設(shè)計(jì)也是可以實(shí)現(xiàn)的,大家可以自行探索研究。

本文轉(zhuǎn)載自微信公眾號(hào)「趣談前端」

 

責(zé)任編輯:姜華 來(lái)源: 趣談前端
相關(guān)推薦

2022-11-24 10:43:33

2018-08-08 15:35:42

網(wǎng)絡(luò)故障網(wǎng)絡(luò)異常網(wǎng)絡(luò)報(bào)錯(cuò)

2019-09-20 08:17:15

Windows軟件腳本語(yǔ)言

2022-05-20 18:04:53

新華三

2024-09-10 10:42:27

2024-02-06 08:18:30

用戶畫像標(biāo)簽數(shù)字化異常值處理

2009-06-03 14:00:51

ibmdwWebSphere業(yè)務(wù)

2010-07-14 10:32:26

SQL Server查

2017-07-04 15:10:20

移動(dòng)端圖片旋轉(zhuǎn)壓縮

2009-03-09 09:45:07

MVCAjax.Net

2022-10-14 17:24:35

MySQLSQL優(yōu)化

2013-04-27 17:03:57

2024-09-27 14:45:30

2010-02-22 10:29:11

WCF上傳文件

2016-11-09 10:28:36

Nodejs文件上傳express+mul

2025-04-25 01:30:00

RAGFlowDifyMiniO

2009-11-05 13:42:44

BSM

2021-07-09 17:17:09

文件場(chǎng)景內(nèi)核
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

综合久久国产九一剧情麻豆| 国产一区二区三区的电影| 欧美日韩国产综合一区二区| 夜夜爽99久久国产综合精品女不卡 | 簧片在线免费看| www.久久ai| 久久久综合激的五月天| 日韩av第一页| 欧美日韩在线观看成人| 免费视频一区三区| 欧美一区二区三区在线观看视频| 久久久久久免费看| a√在线中文网新版址在线| 国产成人免费视| 国产精品ⅴa在线观看h| 久久久久久久久久久网| 欧美理论视频| 日韩精品中文字幕久久臀| 国产精品久久久久久久av福利| √天堂8资源中文在线| 中文字幕一区二区三区四区不卡 | 欧美激情影院| 欧美久久久久久久久中文字幕| 可以看毛片的网址| 麻豆传媒在线完整视频| 久久久久国产精品厨房| 国产精品v欧美精品∨日韩| 亚洲无码精品国产| 亚洲综合精品四区| 久99久在线视频| 日韩一区二区三区四区视频| 亚洲图片久久| 亚洲国产天堂网精品网站| 北条麻妃亚洲一区| 麻豆久久久久| 欧美在线三级电影| 男人揉女人奶房视频60分| 欧美理论片在线播放| 亚洲视频在线一区观看| 少妇特黄a一区二区三区| 亚洲aⅴ乱码精品成人区| 国产高清不卡一区| 亚洲最大福利视频网站| 亚洲系列在线观看| 蜜桃视频在线一区| 国产精品久久久久久久久久久久久久| 中文字幕激情小说| 国产精品亚洲综合色区韩国| 午夜精品久久久久久久白皮肤 | 欧美区国产区| 欧美另类精品xxxx孕妇| 亚洲一级生活片| 国产精品久久久乱弄| 色噜噜国产精品视频一区二区| 中文字幕黄色网址| 成人女性视频| 日韩在线观看免费全| 日本伦理一区二区三区| 天天久久综合| 美女av一区二区| 精品一区在线观看视频| 欧美精品三区| 久久久久中文字幕| 日韩特黄一级片| 国产亚洲在线观看| 日韩av片永久免费网站| 亚洲av无码精品一区二区| 日韩不卡一区二区| 国产在线a不卡| 国产女人18毛片18精品| 国产白丝网站精品污在线入口| 成人av免费看| 天天摸天天碰天天爽天天弄| 久久综合九色综合97婷婷女人| 欧美精品亚洲精品| 日本在线免费播放| 一区二区在线电影| 18禁网站免费无遮挡无码中文| 国产资源在线观看入口av| 欧美性jizz18性欧美| 成人性视频欧美一区二区三区| 电影一区二区| 日韩一区二区视频在线观看| 无码成人精品区在线观看| 欧美日韩一本| 视频在线观看99| 国产一级视频在线播放| 久久精品盗摄| 亚洲一区二区中文字幕| 风流老熟女一区二区三区| 久久综合久久久久88| 亚洲午夜精品久久久久久浪潮| jizz性欧美10| 色狠狠av一区二区三区| 欧美又黄又嫩大片a级| 免费福利视频一区| www.国产一区| 日韩 欧美 综合| 久久99久久99小草精品免视看| 国产精品久久一区二区三区| 国产福利片在线| 亚洲国产sm捆绑调教视频| 91最新在线观看| 成人午夜大片| www.欧美三级电影.com| 欧美日韩综合在线观看| 国产在线播精品第三| 欧美日韩国产精品一卡| 青青草原av在线| 欧美视频自拍偷拍| 丰满少妇一区二区三区| 综合日韩在线| 国产精品偷伦免费视频观看的| 天堂在线视频免费观看| 亚洲色图视频网站| 超碰av在线免费观看| 国产主播性色av福利精品一区| 主播福利视频一区| 精品国产xxx| 成人性生交大合| 中文网丁香综合网| 99re66热这里只有精品4| 亚洲白拍色综合图区| 久久高清内射无套| 久久精品国产一区二区| 欧美一进一出视频| 狠狠躁少妇一区二区三区| 日韩欧美综合一区| 男人晚上看的视频| 奇米色一区二区| 欧美在线播放一区二区| zzzwww在线看片免费| 欧美成人高清电影在线| 视频这里只有精品| 老司机精品视频导航| 日本不卡二区高清三区| 亚洲一二三四| 日韩精品视频在线播放| 日韩av在线天堂| 国产99一区视频免费| 日本一二三区视频在线| 精品一级视频| 麻豆国产精品va在线观看不卡| 一级黄色大片网站| 国产精品人人做人人爽人人添| 欧美一级黄色影院| 国产一区二区三区电影在线观看| 欧美在线播放视频| 欧美在线观看在线观看| 一本到不卡精品视频在线观看| 人妻少妇精品视频一区二区三区| 亚洲欧美bt| 日韩三级电影网站| 久久91视频| 欧美成人激情视频| 亚洲精选一区二区三区| 亚洲高清视频的网址| 国产精品一区二区人妻喷水| 国产日韩欧美| 欧洲亚洲一区二区三区四区五区| 电影一区电影二区| 中文字幕精品久久久久| 一级黄色片免费| 亚洲精选视频在线| 91人人澡人人爽| 国产精品美女久久久浪潮软件| 久久青青草综合| 黄色精品视频| 久久久久99精品久久久久| 亚洲精品国产手机| 欧美日在线观看| 一二三四在线观看视频| 国产一区二区三区免费看| 国产精品第157页| 久久国产精品色av免费看| 欧美亚洲国产成人精品| av在线免费观看网站| 欧美二区乱c少妇| 精品一区在线观看视频| 99精品久久只有精品| 男女午夜激情视频| 色999日韩| 国产精品久久一区二区三区| 欧美中文字幕精在线不卡| 久久精品福利视频| 三级在线观看网站| 欧美性生活影院| 久久久无码一区二区三区| 久久蜜桃av一区二区天堂| 午夜国产福利在线观看| 99国产精品久久久久久久成人热| 婷婷五月色综合| 91精品啪在线观看国产爱臀 | www.激情成人| 亚洲欧洲日本精品| 精品福利电影| 中文字幕一区综合| 欧美黄色录像| 91福利视频导航| 国产超碰精品| 久久男人资源视频| 免费网站免费进入在线| 日韩国产高清污视频在线观看| 亚洲无码精品在线播放| 日韩欧美国产激情| 青青草原免费观看| 中文字幕va一区二区三区| 国产一级黄色录像| 激情成人综合网| 亚洲精品高清无码视频| 伊人成人在线视频| 国产高清精品软男同| 国产剧情在线观看一区| 国产精品18毛片一区二区| 91精品视频一区二区| 国产成人精品国内自产拍免费看| 欧美人与禽性xxxxx杂性| 波霸ol色综合久久| 成人精品一区二区三区校园激情| 亚洲第一二三四五区| 国产99视频在线| 欧美日韩中文字幕一区二区| 日韩特级黄色片| 亚洲18女电影在线观看| 少妇影院在线观看| 亚洲欧洲精品一区二区三区| 天天躁夜夜躁狠狠是什么心态| 成人免费看的视频| 国内精品国产三级国产aⅴ久| 奇米一区二区三区av| 欧美日韩在线成人| 久热综合在线亚洲精品| aa在线免费观看| 国产婷婷精品| 国产高清精品在线观看| 亚洲一区亚洲| 日本欧美黄色片| 亚洲精品一二| 奇米精品一区二区三区| 国产欧美在线| 各处沟厕大尺度偷拍女厕嘘嘘| 日韩视频二区| 免费成人午夜视频| 香蕉视频成人在线观看| 国产成人在线免费看| 久久福利毛片| 精品一卡二卡三卡| 日韩二区在线观看| 中文字幕国产传媒| 蜜臀av性久久久久蜜臀aⅴ| 青青草原国产在线视频| 老司机午夜精品| 深爱五月综合网| 国产二区国产一区在线观看| 日本成人在线免费| 成人美女在线视频| jlzzjizz在线播放观看| 91视频国产资源| 久久久久久久久久久久| 国产欧美一区二区三区网站| 精品女人久久久| 亚洲美女屁股眼交3| 久久久久久久中文字幕| 精品av在线播放| 好吊色在线视频| 3atv一区二区三区| 亚洲精品国产手机| 亚洲女人天堂视频| 日本中文字幕在线2020| 色综合男人天堂| 国内激情视频在线观看| 国产精品国产自产拍高清av水多| 免费成人黄色网| 成人免费91在线看| 亚洲8888| 自拍亚洲欧美老师丝袜| 伊人成年综合电影网| 黄色高清无遮挡| 国产精品一区三区| 国产传媒第一页| 国产精品久久久久精k8| 久久精品视频9| 91久久免费观看| 国产熟女一区二区丰满| 国产婷婷97碰碰久久人人蜜臀| 一区二区三区视频在线观看视频| 九九久久综合网站| 裤袜国产欧美精品一区| 亚洲a∨日韩av高清在线观看| 色老板在线视频一区二区| 亚洲一区3d动漫同人无遮挡 | 狠狠躁夜夜躁人人躁婷婷91| 色婷婷久久综合中文久久蜜桃av| 日韩欧美一级二级| 欧美香蕉爽爽人人爽| 成人444kkkk在线观看| 忘忧草在线日韩www影院| 成人黄色午夜影院| 婷婷亚洲精品| www.18av.com| 麻豆免费看一区二区三区| 国产极品一区二区| 最新中文字幕一区二区三区| 中日韩精品视频在线观看| 91精品国产一区二区三区蜜臀| 日本中文字幕一区二区有码在线| 久久国产天堂福利天堂| 日本欧美韩国| 久久精品国产一区二区三区不卡| 亚洲精品二区三区| 人妻丰满熟妇av无码区app| 成人av在线影院| 特级片在线观看| 欧美猛男男办公室激情| 国产在线日本| 欧日韩在线观看| 99精品中文字幕在线不卡| 免费观看中文字幕| 日韩av一区二区在线影视| 极品粉嫩小仙女高潮喷水久久| 亚洲精品免费电影| 国产又粗又长又黄| 一区二区中文字幕| 成人短视频app| 精品视频免费观看| 亚洲天堂激情| 波多野结衣中文字幕在线播放| 国产精品你懂的在线| 亚洲精品国产无码| 精品夜色国产国偷在线| 2021中文字幕在线| 成人黄色在线免费观看| 亚洲综合中文| 亚洲高清在线不卡| 亚洲欧洲成人自拍| 国产精品自偷自拍| 俺去了亚洲欧美日韩| 日韩av黄色| 波多野结衣三级在线| 久久99在线观看| 色老板免费视频| 91精品国产综合久久精品| 日本蜜桃在线观看| 成人欧美一区二区三区黑人孕妇 | 国产一区二区三区在线观看| 中文字幕亚洲综合| 欧美aaa级| 中国一级黄色录像| 国产成人午夜高潮毛片| 欧美日韩黄色网| 日韩欧美亚洲一区二区| 黄网av在线| 国产青春久久久国产毛片| 999在线观看精品免费不卡网站| 天天躁日日躁狠狠躁av麻豆男男| 精品久久久久久国产91| 久久久久久久久亚洲精品| 日本精品视频在线播放| 国产成人黄色| 日本人69视频| 亚洲精品网站在线观看| 人妻偷人精品一区二区三区| 97视频色精品| 国产一区三区在线播放| 三级一区二区三区| 亚洲图片欧美色图| 三级视频在线| 国产欧美日韩中文字幕在线| 一区二区在线影院| xfplay5566色资源网站| 色哟哟在线观看一区二区三区| 99reav在线| caoporn国产精品免费公开| 中文日韩欧美| 1024在线看片| 欧美不卡一二三| 香蕉成人av| 超碰在线免费观看97| jizz一区二区| 亚洲天堂网视频| 97国产在线观看| 成人在线丰满少妇av| 潘金莲一级淫片aaaaaaa| 精品久久久久久亚洲精品| av免费在线一区二区三区| 成人三级在线| 水野朝阳av一区二区三区| 永久免费看mv网站入口| 亚洲精品成人久久| 亚洲免费资源| 国产精品-区区久久久狼| 亚洲三级电影网站| 欧美日韩伦理片| 91在线直播亚洲| 无码精品在线观看| 精品国产乱码久久久久久牛牛 | 在线免费看av| 国产区一区二区| 九色porny丨国产精品| 久久久久久久极品|