午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁(yè) > 知識(shí)庫(kù) > ztree+ajax實(shí)現(xiàn)文件樹(shù)下載功能

ztree+ajax實(shí)現(xiàn)文件樹(shù)下載功能

熱門(mén)標(biāo)簽:大學(xué)校門(mén)地圖標(biāo)注 銷(xiāo)售電銷(xiāo)機(jī)器人詐騙 荊州智能電銷(xiāo)機(jī)器人 廣西智能外呼系統(tǒng)多少錢(qián) 提高電話機(jī)器人接通率 平?jīng)龈叩碌貓D標(biāo)注商戶要收費(fèi)嗎 福建微碼電話機(jī)器人 外呼系統(tǒng)api對(duì)接 地圖標(biāo)注與公司業(yè)務(wù)關(guān)系

基于java實(shí)現(xiàn)文件樹(shù)下載,供大家參考,具體內(nèi)容如下

0.項(xiàng)目準(zhǔn)備工作

1.前端用到的插件庫(kù):

ztree官網(wǎng)

2.后端maven依賴(lài):

dependencies>
  !-- servlet依賴(lài) -->
  dependency>
    groupId>javax.servlet/groupId>
    artifactId>javax.servlet-api/artifactId>
    version>3.1.0/version>
    scope>provided/scope>
  /dependency>

  !-- springMVC依賴(lài) -->
  dependency>
    groupId>org.springframework/groupId>
    artifactId>spring-webmvc/artifactId>
    version>5.2.6.RELEASE/version>
  /dependency>

  !-- 文件上傳的jar包 -->
  dependency>
    groupId>commons-io/groupId>
    artifactId>commons-io/artifactId>
    version>2.8.0/version>
  /dependency>
  dependency>
    groupId>commons-fileupload/groupId>
    artifactId>commons-fileupload/artifactId>
    version>1.3.3/version>
  /dependency>
     // gson可以不要,這是我測(cè)試時(shí)使用的
    dependency>
      groupId>com.google.code.gson/groupId>
      artifactId>gson/artifactId>
      version>2.2.4/version>
    /dependency>

/dependencies>

3.web.xml配置

?xml version="1.0" encoding="UTF-8"?>
web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
  !-- 聲明springMvc的核心對(duì)象 DispatcherServlet -->
  servlet>
    servlet-name>web/servlet-name>
    servlet-class>org.springframework.web.servlet.DispatcherServlet/servlet-class>
    init-param>
      param-name>contextConfigLocation/param-name>
      param-value>classpath:springConfig.xml/param-value>
    /init-param>
    load-on-startup>1/load-on-startup>
  /servlet>
  servlet-mapping>
    servlet-name>web/servlet-name>
    url-pattern>*.mvc/url-pattern>
  /servlet-mapping>

  !--  注冊(cè)字符集過(guò)濾器,解決post請(qǐng)求的中文亂碼問(wèn)題-->
  filter>
    filter-name>characterEncodingFilter/filter-name>
    filter-class>org.springframework.web.filter.CharacterEncodingFilter/filter-class>
    init-param>
      param-name>encoding/param-name>
      param-value>utf-8/param-value>
    /init-param>
    init-param>
      param-name>forRequestEncoding/param-name>
      param-value>true/param-value>
    /init-param>
    init-param>
      param-name>forResponseEncoding/param-name>
      param-value>true/param-value>
    /init-param>

  /filter>
  filter-mapping>
    filter-name>characterEncodingFilter/filter-name>
    url-pattern>/*/url-pattern>
  /filter-mapping>
/web-app>

4.springConfig.xml配置

?xml version="1.0" encoding="UTF-8"?>
beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    !-- 開(kāi)啟組件掃描   -->
    context:component-scan base-package="com.file">/context:component-scan>

    !--聲明 配置springMVC視圖解析器-->
    bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        !--前綴:視圖文件的路徑-->
        property name="prefix" value="/WEB-INF/view/" />
        !--后綴:視圖文件的擴(kuò)展名-->
        property name="suffix" value=".jsp" />
    /bean>

    !--讀寫(xiě)JSON的支持(Jackson)-->
    mvc:annotation-driven />

    !--  配置多媒體解析  -->
    bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        !--  配置字符編碼集 -->
        property name="defaultEncoding" value="utf-8"> /property>
        !-- 配置文件上傳大小 單位是字節(jié)    -1代表沒(méi)有限制 maxUploadSizePerFile是限制每個(gè)上傳文件的大小,而maxUploadSize是限制總的上傳文件大小  -->
        property name="maxUploadSizePerFile" value="-1"> /property>

        !-- ,不設(shè)置默認(rèn)不限制總的上傳文件大小,這里設(shè)置總的上傳文件大小不超過(guò)1M(1*1024*1024) -->
        property name="maxUploadSize" value="1048576"/>

    /bean>

/beans>

1.效果展示:

服務(wù)器端的文件目錄:

2.思路分析

1、需要遞歸遍歷某個(gè)目錄,并且判斷是目錄還是文件
2、找到父目錄和子文件的關(guān)系,構(gòu)建文件對(duì)象,將該對(duì)象加入到list集合中
3、將list集合轉(zhuǎn)為json,返回給前端進(jìn)行渲染
4、前端渲染出來(lái)的每個(gè)文件都包含一個(gè)該文件對(duì)應(yīng)的下載url,點(diǎn)擊該文件跳轉(zhuǎn)到該文件的下載接口
5、提供下載接口,前端需要傳遞一個(gè)文件名稱(chēng),然后后端根據(jù)文件名稱(chēng)去遍歷指定的目錄,查詢是否有該文件,如果有,則將該文件進(jìn)行下載

先來(lái)看下如果遞歸遍歷獲取到某個(gè)目錄下的所有文件:

public class Test2 {
    
    public static void main(String[] args) {
        File file = new File("D:\\IDE2019");
        listFile(file);

    }

    public  static void listFile(File file ) {
        // 判斷該文件是否存在
        if (file.exists()){
            // 獲取當(dāng)前文件夾下的所有子文件
            File[] files = file.listFiles();
            if (files!=nullfiles.length>0){
                // 對(duì)該文件夾進(jìn)行遍歷
                for (int i = 0; i  files.length; i++) {
                    //  // 如果是一個(gè)目錄繼續(xù)進(jìn)行遞歸
                    if (files[i].exists()files[i].isDirectory()){
                        listFile(files[i]);
                    }else {
                        // 不是目錄,是一個(gè)文件,則輸出文件名
                          System.out.println(files[i].getName());
                    }
                }
            }
        }

    }
    
}

3.前端實(shí)現(xiàn)代碼:

代碼:

%@ page contentType="text/html;charset=UTF-8" language="java" %>
!DOCTYPE html>
html lang="en">
head>
  meta http-equiv="content-type" content="text/html; charset=UTF-8">


  link rel="stylesheet" href="../../css/zTreeStyle/zTreeStyle.css" rel="external nofollow" type="text/css">
  script type="text/javascript" src="../../js/jquery-1.4.4.min.js">/script>
  script type="text/javascript" src="../../js/jquery.ztree.core.min.js">/script>


  title>文件下載/title>
/head>
body>


script>
  var settingss = {
    //zTree 的唯一標(biāo)識(shí),初始化后,等于 用戶定義的 zTree 容器的 id 屬性值。
    treeId:"treeDemo",
    data: {
      simpleData: {
        enable: true,  //true 、 false 分別表示 使用 、 不使用 簡(jiǎn)單數(shù)據(jù)模式
        idKey: "id",   //節(jié)點(diǎn)數(shù)據(jù)中保存唯一標(biāo)識(shí)的屬性名稱(chēng)
        pIdKey: "pId",    //節(jié)點(diǎn)數(shù)據(jù)中保存其父節(jié)點(diǎn)唯一標(biāo)識(shí)的屬性名稱(chēng)
        rootPId: "0"  //用于修正根節(jié)點(diǎn)父節(jié)點(diǎn)數(shù)據(jù),即 pIdKey 指定的屬性值
      },
      key: {
        name: "name"  //zTree 節(jié)點(diǎn)數(shù)據(jù)保存節(jié)點(diǎn)名稱(chēng)的屬性名稱(chēng)  默認(rèn)值:"name"
      }
    },
    check:{
      enable:true,  //true 、 false 分別表示 顯示 、不顯示 復(fù)選框或單選框
      nocheckInherit:false,   //當(dāng)父節(jié)點(diǎn)設(shè)置 nocheck = true 時(shí),設(shè)置子節(jié)點(diǎn)是否自動(dòng)繼承 nocheck = true
      chkboxType: { "Y": "p", "N": "s" }
    },

  };

  $(document).ready(function(){
    $.ajax({
      type:"get",
      url:"/file/init.mvc",
      async:true,
      success:function(result){

        console.log(result)
        // 得到ajax返回的數(shù)據(jù) 并且初始化文件樹(shù)
       var zTreeObj = $.fn.zTree.init($("#treeDemo"), settingss, result); //初始化樹(shù)
        zTreeObj.expandAll(false);   //true 節(jié)點(diǎn)全部展開(kāi)、false節(jié)點(diǎn)收縮

      }
    });
  });


/script>
div>
  ul id="treeDemo" class="ztree">/ul>
/div>
/body>
/html>

4.后端代碼實(shí)現(xiàn):

1.抽象出來(lái)的實(shí)例對(duì)象bean

/**
 * @author compass
 * @version 1.0
 * @date 2021-05-14 22:41
 */
public class MyFile {

    private int id;
    private int pId;
    private String name;
    private String url;

    public MyFile(int id, int pId, String name, String url) {
        this.id = id;
        this.pId = pId;
        this.name = name;
        this.url = url;
    }

    @Override
    public String toString() {
        return "MyFile{" +
                "id=" + id +
                ", pId=" + pId +
                ", name='" + name + '\'' +
                ", url='" + url + ''' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getpId() {
        return pId;
    }

    public void setpId(int pId) {
        this.pId = pId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }
}

2.渲染數(shù)據(jù)和指定文件名查詢文件地址的類(lèi)

/**
 * @author compass
 * @version 1.0
 * @date 2021-05-15 12:31
 */
public class FilerService {

    // 將構(gòu)建為文件對(duì)象的文件或目錄放到list集合中
    ListMyFile> fileList = new ArrayList>();

    /**
     * 功能:遞歸遍歷文件,并且將文件或目錄按照規(guī)定構(gòu)建為對(duì)象 撞到List集合返回
     * @param file 待遍歷的文件夾
     * @param index 掃描文件賦值指針 初始值為 :1
     * @return
     */
    public  ListMyFile> listAll1(File file , int index) {

        File[] listFiles=  file.listFiles();

        // 將文件或目錄構(gòu)建為對(duì)象
        for (int i=1;ilistFiles.length+1;i++){
            if (listFiles[i-1].isDirectory()){
                // 如果是目錄 則url為空 pid=0說(shuō)明是根目錄
                MyFile myFile = new MyFile(i,0,listFiles[i-1].getName(),"");
                fileList.add(myFile);
            }else {
                // 如果是文件則拼接下載地址
                String filename=listFiles[i-1].getName();
                // 文件的id為:(目錄id*100)+文件序列
                MyFile myFile = new MyFile((100*index)+i,index,listFiles[i-1].getName(),"http://localhost:8080/file/download.mvc?filename="+filename);
                fileList.add(myFile);
            }
        }
        // 判斷該文件是否存在
        if (file.exists()){
            // 獲取當(dāng)前文件夾下的所有子文件
            File[] files = file.listFiles();
            if (files!=nullfiles.length>0){
                // 對(duì)文件進(jìn)行遍歷
                for (int i = 0; i  files.length; i++) {
                    if (files[i].exists()files[i].isDirectory()){
                        // 如果是一個(gè)目錄繼續(xù)進(jìn)行遞歸 直到找到文件為止 每遍歷一個(gè)目錄 index+1
                        listAll1(files[i],i+1);
                    }
                }
            }
        }
        return fileList;
    }

    // 制定文件的父目錄
    String parentDir=null;

    /**
     * 根據(jù)傳遞過(guò)來(lái)的文件名 找到該文件的父文件夾,如果沒(méi)有找到返回null
     * @param fileName 文件名
     * @param dir 需要查找的目錄
     * @return
     */
    public  String getFileName(String fileName,File dir){
        if (dir.exists()){
             File[] files = dir.listFiles();
             if (files!=nullfiles.length>0){
                for (int i=0;ifiles.length;i++){
                    if (files[i].exists()files[i].isDirectory()){
                        getFileName(fileName,files[i]);
                    }else {
                        // 如果找到傳遞過(guò)來(lái)的文件名則賦值給 parentDir
                        if (fileName.equals(files[i].getName())){
                            parentDir=files[i].getParent();
                            break;
                        }
                    }
                }
             }
         }
        return parentDir;
    }
}

3.下載和渲染數(shù)據(jù)的Controller

/**
 * @author compass
 * @version 1.0
 * @date 2021-05-14 21:43
 */
@Controller
@RequestMapping("/file/")
public class FileDownloadController {


    // 提供訪問(wèn)接口
    @GetMapping("downloadIn.mvc")
    public String downloadIn(){
        return "index";
    }

    // 初始化頁(yè)面數(shù)據(jù)
    @ResponseBody
    @GetMapping("init.mvc")
    public ListMyFile> test(){
        File file = new File("D:\\IDE2019\\work");
        FilerService service = new FilerService();
        // 將制定目錄的文件夾 下的目錄和文件構(gòu)建為MyFile對(duì)象裝到List集合中
        ListMyFile> listAll1 = service.listAll1(file, 1);
        // 返回Json數(shù)據(jù)給前端進(jìn)行渲染
        return listAll1;
    }

    // 提供下載接口
    @GetMapping("download.mvc")
    public ResponseEntity byte[]> fileDownload1(String filename,HttpServletRequest request) throws IOException {
        // 指定下載那個(gè)目錄下的文件
        File file = new File("D:\\IDE2019\\work");
        FilerService service = new FilerService();
        // 獲取到該文件的父目錄
        String path = service.getFileName(filename, file);

        // 創(chuàng)建文件下載對(duì)象
        File downloadFile = new File(path, filename);

        HttpHeaders header = new HttpHeaders();
        header.setContentDispositionFormData("attachment",filename);
        header.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        ResponseEntitybyte[]> result = new ResponseEntity>(FileUtils.readFileToByteArray(downloadFile), header, HttpStatus.OK);
        return result;
    }
}

測(cè)試:可以看到我們每點(diǎn)擊一個(gè)文件都可以跳轉(zhuǎn)到我們的下載接口,進(jìn)行下載的。

這只是一個(gè)簡(jiǎn)單的使用,還有很多地方需要進(jìn)行優(yōu)化,當(dāng)然也可以使用別的方法進(jìn)行實(shí)現(xiàn),這就是算是一個(gè)小練習(xí)吧,復(fù)習(xí)一下ajax和遞歸的知識(shí)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • JQuery的AJAX實(shí)現(xiàn)文件下載的小例子
  • Ajax請(qǐng)求二進(jìn)制流進(jìn)行處理(ajax異步下載文件)的簡(jiǎn)單方法
  • Ajax實(shí)現(xiàn)文件下載
  • Jquery Ajax請(qǐng)求文件下載操作失敗的原因分析及解決辦法
  • Ajax 生成流文件下載(實(shí)現(xiàn)代碼)
  • jQuery的ajax下載blob文件
  • 使用Ajax生成的Excel文件并下載的實(shí)例
  • jQuery使用動(dòng)態(tài)渲染表單功能完成ajax文件下載
  • SpringMVC+Ajax實(shí)現(xiàn)文件批量上傳和下載功能實(shí)例代碼
  • PHP使用ajax的post方式下載excel文件簡(jiǎn)單示例

標(biāo)簽:內(nèi)江 黔東 德陽(yáng) 邯鄲 樂(lè)山 海南 婁底 衡陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ztree+ajax實(shí)現(xiàn)文件樹(shù)下載功能》,本文關(guān)鍵詞  ztree+ajax,實(shí)現(xiàn),文件,樹(shù),下載,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ztree+ajax實(shí)現(xiàn)文件樹(shù)下載功能》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于ztree+ajax實(shí)現(xiàn)文件樹(shù)下載功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    秋霞影院一区二区| 亚洲成人一级片| 亚洲国模精品一区| 欧美极品jizzhd欧美18| 欧美主播福利视频| 亚洲一区二区三区在线看| 中文字幕中文字幕99| 精品国产三级a在线观看| 红桃av永久久久| 人人干人人干人人干| 亚洲高潮无码久久| 日韩精品在线视频| 国产成年妇视频| 一区二区不卡免费视频| 性欧美大战久久久久久久| 18禁网站免费无遮挡无码中文| 亚洲蜜桃在线| 亚洲二区三区四区| 国产精品久久久久久久久男| 日韩精品一二三四区| 美女视频黄免费的久久| 欧美日韩电影一区二区| 高清欧美性猛交| 高清久久久久久| 99成人在线观看| www深夜成人a√在线| 国产资源第一页| 国产日韩在线视频| 久久精品视频导航| 真实的国产乱xxxx在线91| 亚洲第一综合网| 国产在线视频三区| 亚洲精品国产精品国自| 日韩在线视频免费播放| 国产三级精品在线观看| 国产熟女一区二区丰满| 欧美激情久久久久久久| 狠狠干视频网站| 亚洲国产你懂的| 日韩成人一级大片| 久久网中文字幕| 欧美乱妇高清无乱码| 三级精品在线观看| 女人色极品影院| 精品国产91乱码一区二区三区| 欧美亚洲综合网| 成人高清免费观看| 91国偷自产中文字幕久久| 国产av无码专区亚洲av毛网站| 五月天婷婷久久| 91禁在线观看| 亚洲成a人片在线| 中文字幕免费播放| 欧美成人久久久免费播放| 激情深爱综合网| 色综合久久精品亚洲国产| 狠狠色狠色综合曰曰| 日韩精品高清不卡| 潘金莲一级淫片aaaaa免费看| 4438x成人网最大色成网站| 亚洲AV无码国产精品午夜字幕| 亚洲最大成人网站| www.欧美com| 欧美影视一区二区| 国产日韩欧美黄色| 亚洲伊人久久大香线蕉av| xxxxxx在线观看| 一本加勒比北条麻妃| 婷婷激情五月综合| 日韩av一级片| 久久激情五月激情| 亚洲日本视频在线观看| 粉嫩av懂色av蜜臀av分享| 国产高清视频网站| 男女男精品视频站| 亚洲区在线播放| 成人av资源在线观看| 免费日韩在线视频| 国产精品久久..4399| 亚洲高清在线免费观看| 国产一区视频免费观看| 日本在线观看一区二区| 亚洲精品欧美极品| 女女同性女同一区二区三区91| 激情小说综合网| 国产日韩一区欧美| 亚洲欧美国产制服动漫| 91久久国产最好的精华液| 亚洲国产成人精品视频| 日韩专区一卡二卡| 日韩美女一级片| 先锋av资源站| 97超碰欧美中文字幕| 国产原创一区二区| 成人精品小蝌蚪| 久久亚洲国产成人精品性色| 亚洲影院在线播放| wwwav网站| 日本一区二区三区久久久久久久久不 | 精品免费国产一区二区三区四区| 911国产精品| 亚洲女子a中天字幕| 亚洲久本草在线中文字幕| 91精品国产免费久久综合| 久久精品夜夜夜夜久久| 95精品视频在线| 亚洲成a人在线观看| 欧美一级二级三级乱码| 欧美一个色资源| 日韩精品在线影院| 色天使色偷偷av一区二区| 黑人巨大精品欧美一区二区| 日韩av在线播放资源| 91久久精品www人人做人人爽| 国产+高潮+白浆+无码| 一级片在线免费观看视频| 国产精品国产馆在线真实露脸 | 国产精品久久久久久免费| 免费成人在线观看视频| 国产麻豆午夜三级精品| 欧美日韩在线视频免费| 日本黄色www| 香港三级韩国三级日本三级| 久久久久久久久一区| 国产乱叫456| 欧美成人三级在线观看| 久久久久无码国产精品不卡| www.色播.com| 欧美精彩视频一区二区三区| 久久久久女教师免费一区| 草草地址线路①屁屁影院成人| 99精品在线观看视频| 欧美久久久精品| 亚洲一区二区三区午夜| 亚洲色图欧美另类| 黄色a级片在线观看| 久久中文字幕无码| 国产69精品久久久久久久久久| 亚洲欧美日本在线观看| 五月婷婷六月激情| 911美女片黄在线观看游戏| 国产精品欧美综合| 激情网站在线观看| 国产高清中文字幕| 怡红院av一区二区三区| 精品视频—区二区三区免费| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久一二三四区| 国产人妖在线观看| 久久人人爽av| 国产裸体免费无遮挡| 日日噜噜夜夜狠狠久久丁香五月| 精品乱色一区二区中文字幕| 成人黄色av免费在线观看| 国产精品xxxxx| 欧美亚洲国产另类| 668精品在线视频| 538国产精品一区二区在线| 欧美激情亚洲精品| 欧美激情一区二区三区在线视频观看| 中日韩美女免费视频网站在线观看 | 国产欧美久久久久| 日韩中文字幕在线免费| 国产日本在线播放| 成人小视频在线看| 天堂在线中文在线| jjzz黄色片| 久久人妻少妇嫩草av蜜桃| 91精品又粗又猛又爽| 国产精品1000部啪视频| 成人性视频免费看| 91在线看视频| 国产一级在线观看视频| 久久久久女人精品毛片九一| 黄色网址中文字幕| 深爱五月激情五月| 国产成人啪免费观看软件 | 国产又大又长又粗| 日韩制服丝袜先锋影音| 久久电影国产免费久久电影| 国产高清视频免费观看| 午夜影院在线视频| 成人网在线播放| 国产精品传媒视频| 日本高清不卡一区| 亚洲欧洲中文天堂| 国产精品盗摄久久久| 免费精品视频一区二区三区| 99久久免费观看| 国产精品亚洲二区在线观看| 中文字幕一区二区三区四| 大地资源二中文在线影视观看| 精品国产视频在线观看| 久久久精品免费看| 久久激情一区| 91丨九色porny丨蝌蚪| 五月天婷婷综合| 亚洲第一偷拍网| 97视频在线观看网址| 日韩av电影免费观看高清| 欧美下载看逼逼| 成人在线观看黄| 婷婷伊人五月天| 日韩黄色免费电影| 一级做a爱片久久| 欧美日韩一区二区三区不卡| 日韩在线激情视频| 成人久久18免费网站图片| 警花观音坐莲激情销魂小说| 中文字幕乱码在线| 国产精品一级视频| 国产69精品久久久久毛片| 精品久久中文字幕| 欧美精品激情视频| 亚洲巨乳在线观看| 国产xxxxx视频| 50一60岁老妇女毛片| 中文在线一区二区 | 欧美激情欧美狂野欧美精品| 91黄在线观看| 黄色免费视频大全| 99免费观看视频| 日韩三级视频在线播放| 韩国三级在线一区| 7777女厕盗摄久久久| 26uuu另类亚洲欧美日本老年| 国产欧美综合一区| 99视频只有精品| 韩国成人精品a∨在线观看| 91看片淫黄大片一级| 26uuu精品一区二区在线观看| 欧美性高清videossexo| 国产成人一区二区在线| 特级丰满少妇一级| 中文文字幕一区二区三三| 懂色av中文字幕一区二区三区| 精品噜噜噜噜久久久久久久久试看| 奇门遁甲1982国语版免费观看高清| 亚洲爆乳无码精品aaa片蜜桃| 免费成人深夜天涯网站| 美女性感视频久久| 日本精品视频一区二区三区| 91久久久久久久久久久久久| www.自拍偷拍| 日韩精品每日更新| 欧美日韩精品一区二区三区四区| 国产精品一区电影| 99re这里只有| 成人av在线影院| 亚洲色图狂野欧美| 男女激情无遮挡| www.色呦呦| 欧美成人vps| 日韩中文字幕在线免费| 超碰人人人人人人| 欧美r级在线观看| 男女裸体影院高潮| 在线观看免费视频a| 欧美性大战xxxxx久久久| 电影午夜精品一区二区三区| 黄色激情小视频| 国产三级精品三级在线专区| 2019中文字幕在线免费观看| 国产麻豆xxxvideo实拍| 国产亚洲精品久| 国产专区精品视频| 日本三级2019| 欧美私人免费视频| 精品一区二区三区日本| 国产一区免费看| 日韩区在线观看| 中国成人在线视频| 中文字幕码精品视频网站| 欧美理论电影在线| 午夜视频久久久| 91精品国自产| 亚洲一区二区福利| 中文字幕55页| 久久久久久久久免费| 国产男人精品视频| 性无码专区无码| 精品国产一区二区精华| 日本77777| 中文字幕二三区不卡| 国产裸体写真av一区二区| 国产乡下妇女做爰毛片| 色诱视频网站一区| 欧美另类videosbestsex日本| 蜜桃在线一区二区| 久久人人爽人人爽人人片av高清| 放荡的美妇在线播放| 亚洲福利视频在线| 欧美黑人欧美精品刺激| 亚洲国产一区二区视频| 国产美女作爱全过程免费视频| 国产精品影视在线观看| 国产色婷婷国产综合在线理论片a| 国产黄色免费观看| 亚洲人成五月天| 国产一二三四视频| 日韩午夜av一区| 成人免费看片载| 欧美亚洲日本一区| 国产人妻777人伦精品hd| 久久亚洲综合色一区二区三区| 青娱乐一区二区| 成人中文字幕在线| 日韩电影免费观看高清完整| 国产在线视频一区二区三区| 国产精品v欧美精品∨日韩| 久久午夜av| 久久久久se| www.成人网.com| 欧美一区二区三区在线播放| 国产精一区二区三区| 欧美亚洲一级二级| 国产一区二区在线看| 欧美日本韩国一区二区三区| fc2成人免费人成在线观看播放| 中文字幕日韩精品一区二区| 日本一区二区综合亚洲| 亚洲人精品午夜射精日韩 | 国产黄色av网站| 91福利视频网| 亚洲欧美另类日韩| 岛国一区二区三区高清视频| 久久99精品国产麻豆不卡| 97se在线视频| 91热门视频在线观看| 国产中文字幕在线免费观看| 日韩欧美在线观看| 日本成人免费在线观看| 日韩精品在线私人| 亚洲精品毛片一区二区三区| 国产97色在线|日韩| 肉肉av福利一精品导航| 丝袜美腿玉足3d专区一区| 成人免费精品视频| 男女视频一区二区三区| 91精品婷婷国产综合久久性色| 久草视频免费在线| 国产精品69精品一区二区三区| 国内国产精品久久| 中国丰满熟妇xxxx性| 一区二区三区波多野结衣在线观看 | 日本高清不卡一区二区三| 亚洲猫色日本管| 99久久免费观看| 欧美日韩精品欧美日韩精品| 一级黄色片网址| 热久久这里只有| 91麻豆免费在线观看| 激情成人在线观看| 久久精品99久久久久久久久| 手机看片1024国产| a√天堂在线观看| 亚洲精品中文字| 美女爽到呻吟久久久久| 久久婷婷五月综合色国产香蕉| 精品国精品自拍自在线| 性欧美一区二区三区| 国产真人做爰毛片视频直播 | 噜噜噜在线视频| 日韩美女视频在线观看| 国产丝袜美腿一区二区三区| 精品无码人妻一区二区免费蜜桃| 日本午夜人人精品| 中文字幕亚洲一区二区va在线| 国产尤物在线播放| 91亚洲精品视频| 欧美日韩中文在线| 无码人妻精品一区二区三区蜜桃91 | 亚洲欧洲精品一区二区三区| 午夜精品福利在线视频| 国产日韩久久| 欧美人与z0zoxxxx视频| 图片区 小说区 区 亚洲五月| a在线观看免费视频| 91福利视频网| 亚洲成人动漫精品| 国产精品无码在线播放| 91看片就是不一样| 国色天香2019中文字幕在线观看| 亚洲国产精品精华液ab| 欧美激情国产精品免费| 亚洲春色在线视频| 色综合伊人色综合网| 久久久一区二区三区| 特级片在线观看| 国产精品无码电影在线观看| 蜜臀久久99精品久久久无需会员| 中文字幕av一区二区三区高| 中文字幕超碰在线| 欧美丰满熟妇bbbbbb百度| 5566日本婷婷色中文字幕97| 欧美午夜xxx| 久久99精品国产91久久来源| 公肉吊粗大爽色翁浪妇视频| 日韩不卡av| 久久久久国产精品一区| 亚洲欧美综合在线精品| 国产超碰人人模人人爽人人添| 韩国三级hd中文字幕有哪些| 亚洲一区二区三区成人在线视频精品| 7777精品久久久大香线蕉| 视频在线观看91| 日韩精品一区二区亚洲av性色| 美女av免费观看| 国产精品久久久久9999| 欧美一区二区成人|