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

歡迎訪問 生活随笔!

生活随笔

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

HTML

原生态HTML文件上传与下载

發(fā)布時間:2024/7/5 HTML 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 原生态HTML文件上传与下载 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文件下載

傳統(tǒng)的文件下載有兩種方法:

  • 使用<a/>標簽,href屬性直接連接到服務器的文件路徑
  • window.location.href="url"
  • 這兩種方法效果一樣。但有個很大的問題,如果下載出現(xiàn)異常(連接路徑失效、文件不存在、網(wǎng)絡問題等),會導致原本的頁面被覆蓋掉,顯示404等錯誤信息。

    大致的優(yōu)化思路如下:

  • 使用<a/>標簽HTML5新的屬性download。
  • 使用<iframe><iframe/>元素進行下載。
  • 使用ajax、axios、fetch等方法異步下載。
  • 使用websocket下載。
  • 我們來逐一分析:

  • ?<a/>標簽的download屬性,需要和href一起用,download的作用是為下載的文件賦文件名。
    • 如果服務端沒有指定文件名,就以此屬性規(guī)定的名稱命名。
    • 如果下載出現(xiàn)異常,該屬性的存在能夠保證頁面不會出問題。
    • 如果服務端返回的不是文件、而是字符,如果download=‘’error.txt”,能夠通過打開此文件查看到返回的文本信息。
  • <iframe>標簽可以做到在現(xiàn)有的頁面下,內(nèi)嵌一個子頁面。當用戶點擊文件下載時,將隱藏的iframe元素的src屬性指向文件下載路徑。
    • 如果沒有異常,文件將會直接下載。
    • 如果出現(xiàn)異常,iframe子頁面會報錯,父頁面不會受任何影響。
  • 使用異步請求進行下載。
    • 在網(wǎng)上看了看,大致的流程是:發(fā)送異步請求時設(shè)置responseType為blob,即接收流數(shù)據(jù)為blob對象保存在內(nèi)存中。接收完成后,生成鏈接地址(1.通過FileReader對象將blob對象生成base64編碼 2.通過URL.createObjectURL生成指向文件內(nèi)存的鏈接),寫入<a/>標簽的href屬性,然后模擬點擊<a/>按標簽實現(xiàn)下載。
    • 此方法最大的問題是,因無法直接操作磁盤,故接收的文件必須先存放在內(nèi)存中(且只有傳輸完成后才能構(gòu)建blob對象),才能轉(zhuǎn)化成文件。因此,大文件的下載可能會把你的瀏覽器擠爆。
  • 使用websocket下載。
    • 需要額外開啟websocket服務,此方法未做實踐。
  • 總結(jié)以上方法,最推薦前兩種,方便簡單。

    附上后端Django代碼(適用于前兩種方法):

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    def?syncDownLoad(request):

    ????"文件下載"

    ????print("同步下載文件")

    ????startTime?=?time.time()

    ?

    ????def?file_iterator(file, chunk_size=1024):

    ????????with?open(file,?"rb") as f:

    ????????????while?True:

    ????????????????c?=?f.read(chunk_size)

    ????????????????if?c:

    ????????????????????yield?c

    ????????????????else:

    ????????????????????endTime?=?time.time()

    ????????????????????print("傳輸時間", endTime?-?startTime)

    ????????????????????break

    ?

    ????fileRoute?=?"/static/files/2018/12/18/第四章(1)學習動機概述.mp4"

    ????fileName?=?"第四章(1)學習動機概述.mp4"

    ????route?=?os.path.dirname(os.path.dirname(__file__))?+?fileRoute

    ????if?os.path.exists(route):??# 如果存在文件

    ????????response?=?StreamingHttpResponse(file_iterator(route))

    ????????# response['Content-Type'] = 'application/octet-stream'

    ????????response['Content-Type']?=?'text/html'

    ????????response['Content-Disposition']?=?'attachment;filename="{0}"'.format(fileName).encode("utf-8")

    ????????return?response

    ????else:

    ????????return?HttpResponse("cannot find file")

    參考鏈接:

    https://scarletsky.github.io/2016/07/03/download-file-using-javascript/

    https://my.oschina.net/watcher/blog/1525962

    ?

    文件上傳

    ?概述

    文件上傳需要處理的問題有:

    1.多文件上傳? 2.異步上傳? 3.拖拽上傳? 4.上傳限制(限制大小、類型) 5.顯示上傳進度、上傳速度、中途取消上傳? 6.預覽文件

    HTML DEMO

    1

    2

    <input?type="file" id="file" name="myfile" onchange="onchanges()" multiple="multiple"/>

    <input?type="button" onclick="SerialUploadFile()" value="上傳"/>

    一、多文件上傳

    1

    <input?type="file" id="file" name="myfile" multiple="multiple"/>?<!-- multiple屬性 -->

    二、異步上傳

    通過ajax等方式異步上傳,FormData對象支持傳輸文件。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    function UploadFile() {

    ??var fileObj = document.getElementById("file").files;??// js 獲取文件對象(FileList對象)

    ?

    ??// FormData 對象

    ??var form =?new?FormData();

    ??form.append("author",?"xueba");?????????????// 可以增加表單數(shù)據(jù)

    ??for?(let i =?0; i < fileObj.length; i++)

    ??{

    ?????form.append("file", fileObj[i]);????????// 文件對象

    ??}

    ?

    ?????$.ajax({

    ????????url:?"/file_upload/",

    ????????type:?"POST",

    ????????async:?true,??????// 異步上傳

    ????????data: form,

    ????????contentType:?false,?// 必須false才會自動加上正確的Content-Type

    ????????processData:?false,?// 必須false才會避開jQuery對 formdata 的默認處理。XMLHttpRequest會對 formdata 進行正確的處理

    ????????success: function (data) {

    ???????????data = JSON.parse(data);

    ???????????data.forEach((i)=>{

    ??????????????console.log(i.code,i.file_url);

    ???????????});

    ????????},

    ????????error: function () {

    ???????????alert("aaa上傳失敗!");

    ????????},

    ?????});

    ?

    }

    三、拖拽上傳

    默認文本、圖像和鏈接可以被拖動。其它的元素想要被拖動,只需為標簽加一個draggable="true"屬性

    1

    <div?draggable="true"><div/>

    ?HTML5 API drag 和 drop

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    被拖動元素發(fā)生的事件

    ????dragstart??? 被拖動元素開始拖動時

    ????drag???????? 正在被拖動時

    ????dragend????? 取消拖拽時

    ?????

    目標元素發(fā)生的事件(當某元素被綁定以下事件就變成了目標元素)

    ????dragenter??? 拖動元素進入目標上觸發(fā)

    ????dragover???? 拖動元素在目標元素上移動觸發(fā)

    ????dragleave??? 拖動元素離開目標時觸發(fā)

    ????drop???????? 拖動元素在目標上釋放觸發(fā),這時不會觸發(fā)dragleave

    ?

    注意:

    ????1.目標元素默認不能夠被拖放drop,要在dragover事件中取消默認事件(e.preventDefault())

    ????2.有些元素(img)被拖放后,默認以鏈接形式打開,要在drop事件中取消默認事件(e.preventDefault())

    ????????【火狐瀏覽器可能不頂用,需要再加event.stopPropagation()】

    ?

    dataTransfer(事件對象屬性(對象))

    ????數(shù)據(jù)交換:只是簡單的拖拽沒有意義,我們還需要數(shù)據(jù)交換,即被拖動元素和目標元素之間的數(shù)據(jù)交換。

    ????方法:

    ????????setData(key,value)? 設(shè)置數(shù)據(jù)(key和value都必須是string類型)

    ????????getData(key)??????? 獲取數(shù)據(jù)

    ????????clearData()???????? 清除數(shù)據(jù)(不傳參清空所有數(shù)據(jù))

    ????????setDragImage(imgElement,x,y)????? 設(shè)置元素移動過程中的圖像(參數(shù):圖像元素,xy表示圖像內(nèi)的偏移量)

    ????屬性:

    ????????dropEffect? 表示被拖動元素可以執(zhí)行哪一種放置行為(一般在dragover事件內(nèi)設(shè)置)

    ????????????none禁止放置(默認值)??

    ????????????move移動到新的位置??

    ????????????copy復制到新的位置

    ????????????link

    ????????effectAllowed? 用來指定拖動時被允許的行為(一般無需設(shè)置)

    ????????????copy,move,link,copyLink,copyMove,linkMove,all,none,uninitialized默認值,相當于all.

    ????????files??? FileList對象。如果拖動的不是文件,此為空列表????

    ????????items??? 返回DataTransferItems對象,該對象代表了拖動數(shù)據(jù)。

    ????????types??? 返回一個DOMStringList對象,該對象包括了存入dataTransfer中數(shù)據(jù)的所有類型。

    ?????

    ?????

    ????注意:

    ????????1.如果拖拽了文本,瀏覽器會自動調(diào)用setData(),設(shè)置對應文本數(shù)據(jù)

    參考鏈接:

    https://developer.mozilla.org/zh-CN/docs/Web/API/HTML_Drag_and_Drop_API

    https://developer.mozilla.org/zh-CN/docs/Web/API/DataTransfer

    https://www.zhangxinxu.com/wordpress/2018/09/drag-drop-datatransfer-js/

    http://www.sohu.com/a/198973397_291052

    四、上傳限制

    1

    <input?type="file"? accept="image/*" /> 接收全部格式的圖片

    此外,獲取到的File對象中有type屬性可以得知文件類型,size屬性的得知文件大小

    五、上傳進度、上傳速度、中途取消上傳

    原生API

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    xhr.onload =?function(e){};//上傳請求完成

    xhr.onerror =?function(e){};//上傳異常

    xhr.upload.onloadstart =?function(e){};//開始上傳

    xhr.upload.onprogress =function(e){};//上傳進度? 這個方法會在文件每上傳一定字節(jié)時調(diào)用

    ?

    e.loaded//表示已經(jīng)上傳了多少byte的文件大小

    e.total//表示文件總大小為多少byte

    通過這兩個關(guān)鍵的屬性就可以去計算 上傳進度與速度

    ?

    xhr.onreadystatechange =?function(){}//當xhr的狀態(tài)(上傳開始,結(jié)束,失敗)變化時會調(diào)用 該方法可以用來接收服務器返回的數(shù)據(jù)

    ?

    中途取消上傳 xhr.abort();

    單文件上傳 或 多文件串行上傳 Demo:(該Demo只會有一個進度條,顯示上傳總進度。對應“異步上傳”的代碼)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    xhr.upload.addEventListener("progess",progessSFunction,false);?// 上傳過程中顯示進度和速度

    ?

    function?progressSFunction(e) {

    ??????var?progressBar = document.getElementById(`pro`);

    ??????var?percentageDiv = document.getElementById(`per`);

    ??????if?(e.lengthComputable)?// lengthComputable表示進度信息是否可用

    ??????{

    ?????????progressBar.max = e.total;

    ?????????progressBar.value = e.loaded;

    ?????????let?speed = (e.loaded - progress[0].last_laoded) / (e.timeStamp - progress[0].last_time) +?" bytes/s";

    ?????????let?percent = Math.round(e.loaded / e.total * 100) +?"%";

    ?????????progress[0].last_laoded = e.loaded, progress[0].last_time = e.timeStamp;

    ?????????percentageDiv.innerHTML = percent +?" "?+ speed;

    ??????}

    ???}

    多文件并行上傳進度顯示:(多個進度條,分別上傳)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    // 多文件并行上傳

    ????function?ParallelUploadFile() {

    ??????last_laoded = 0;

    ??????last_time = (new?Date()).getTime();

    ?

    ??????var?fileObj = document.getElementById("file").files;??// js 獲取文件對象

    ??????for?(let?k = 0; k < fileObj.length; k++)

    ??????{

    ?

    ?????????let?domStr = `<div> ${fileObj[k].name},大小${fileObj[k].size}字節(jié)

    ????????????????????????<progress?class='progressBar'?id='pro${k}'?value=''?max=''></progress>

    ????????????????????????<span?class='percentage'?id='per${k}'></span>

    ????????????????????????</div>`;

    ?????????$("body").append(domStr);

    ?

    ?????????// FormData 對象

    ?????????var?form =?new?FormData();

    ?????????form.append("author",?"xueba");?????????????// 可以增加表單數(shù)據(jù)

    ?????????form.append("csrfmiddlewaretoken", $("[name = 'csrfmiddlewaretoken']").val());

    ?????????form.append("file", fileObj[k]);

    ?

    ?

    ?????????// XMLHttpRequest 對象

    ?????????{#var xhr = new XMLHttpRequest();#}

    ?????????{#xhr.open("post", "/file_upload/", true);#}

    ?????????{#xhr.onload = function () {#}

    ?????????{#?? alert("上傳完成!");#}

    ?????????{# };#}

    ?????????{#xhr.upload.addEventListener("progress", progressFunction, false);#}

    ?????????{#xhr.send(form);#}

    ?

    ?????????// jQuery ajax

    ?????????$.ajax({

    ????????????url:?"/file_upload/",

    ????????????type:?"POST",

    ????????????async:?true,??????// 異步上傳

    ????????????data: form,

    ????????????contentType:?false,?// 必須false才會自動加上正確的Content-Type

    ????????????processData:?false,?// 必須false才會避開jQuery對 formdata 的默認處理。XMLHttpRequest會對 formdata 進行正確的處理

    ????????????xhr:?function?() {

    ???????????????let?xhr = $.ajaxSettings.xhr();

    ???????????????xhr.upload.addEventListener("progress", (e) => {progressPFunction(e, k)},?false);

    ???????????????xhr.upload.onloadstart = (e) => {

    ??????????????????progress[k] = {

    ?????????????????????last_laoded: 0,

    ?????????????????????last_time: e.timeStamp,

    ??????????????????};

    ???????????????};

    ???????????????xhr.upload.onloadend = () => {

    ??????????????????delete?progress[k];

    ???????????????};

    ???????????????return?xhr;

    ????????????},

    ????????????success:?function?(data) {

    ???????????????data = JSON.parse(data);

    ???????????????data.forEach((i) => {

    ??????????????????console.log(i.code, i.file_url);

    ???????????????});

    ????????????},

    ????????????error:?function?() {

    ???????????????alert("aaa上傳失敗!");

    ????????????},

    ?????????});

    ??????}

    ?

    ????}

    六、預覽文件

    預覽圖片

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    function?onchanges() {?// input file綁定onchange事件

    ???let?files = document.getElementById("file").files;

    ???if(files[0].type.indexOf("image")>-1)

    ???{

    ??????let?read =?new?FileReader();

    ??????read.onload =?function(e) {?// 讀取操作完成時觸發(fā)

    ?????????let?img =?new?Image();

    ?????????img.src = e.target.result;?// 將base64編碼賦給src屬性

       $("body")[0].appendChild(img);

    ??????};

    ??????read.readAsDataURL(files[0]);?// 讀取文件轉(zhuǎn)化成base64編碼

    ???}

    }?

    七、前后端匯總Demo

    前端

    HTML

    1

    2

    <input?type="file" id="file" name="myfile" onchange="onchanges()" multiple="multiple"/>

    <input?type="button" onclick="SerialUploadFile()" value="上傳"/>

    JavaScript

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    113

    114

    115

    116

    117

    118

    119

    120

    121

    122

    123

    124

    125

    126

    127

    128

    129

    130

    131

    132

    133

    134

    135

    136

    137

    138

    139

    140

    141

    142

    143

    144

    145

    146

    147

    148

    149

    150

    151

    152

    153

    154

    155

    156

    157

    158

    159

    160

    161

    162

    163

    164

    165

    166

    167

    168

    169

    170

    171

    172

    173

    174

    175

    176

    177

    178

    179

    180

    181

    182

    183

    184

    185

    186

    187

    188

    189

    190

    191

    192

    let?progress = {};

    let?last_laoded;

    let?last_time;

    ?

    function?onchanges() {

    ???let?files = document.getElementById("file").files;

    ???console.log(`共${files.length}個文件`);

    ???let?countSize = 0;

    ???for?(let?i = 0; i < files.length; i++) {

    ??????console.log(`${files[i].name}? 大小${files[i].size}`);

    ??????countSize += files[i].size;

    ???}

    ???console.log(`共計占用${countSize}字節(jié)`);

    ???if?(files[0].type.indexOf("image") > -1)

    ???{

    ??????let?read =?new?FileReader();

    ??????read.onload =?function?(e) {?// 讀取操作完成時觸發(fā)

    ?????????let?img =?new?Image();

    ?????????img.src = e.target.result;?// 將base64編碼賦給src屬性

    ?????????$("body")[0].appendChild(img);

    ?

    ??????};

    ??????read.readAsDataURL(files[0]);?// 讀取文件轉(zhuǎn)化成base64編碼

    ???}

    }

    ?

    ?// 多文件并行上傳

    ?function?ParallelUploadFile() {

    ???last_laoded = 0;

    ???last_time = (new?Date()).getTime();

    ?

    ???var?fileObj = document.getElementById("file").files;??// js 獲取文件對象

    ???for?(let?k = 0; k < fileObj.length; k++)

    ???{

    ?

    ??????let?domStr = `<div> ${fileObj[k].name},大小${fileObj[k].size}字節(jié)

    ?????????????????????<progress?class='progressBar'?id='pro${k}'?value=''?max=''></progress>

    ?????????????????????<span?class='percentage'?id='per${k}'></span>

    ?????????????????????</div>`;

    ??????$("body").append(domStr);

    ?

    ??????// FormData 對象

    ??????var?form =?new?FormData();

    ??????form.append("author",?"xueba");?????????????// 可以增加表單數(shù)據(jù)

    ??????form.append("csrfmiddlewaretoken", $("[name = 'csrfmiddlewaretoken']").val());

    ??????form.append("file", fileObj[k]);

    ?

    ?

    ??????// XMLHttpRequest 對象

    ??????{#var xhr = new XMLHttpRequest();#}

    ??????{#xhr.open("post", "/file_upload/", true);#}

    ??????{#xhr.onload = function () {#}

    ??????{#?? alert("上傳完成!");#}

    ??????{# };#}

    ??????{#xhr.upload.addEventListener("progress", progressFunction, false);#}

    ??????{#xhr.send(form);#}

    ?

    ??????// jQuery ajax

    ??????$.ajax({

    ?????????url:?"/file_upload/",

    ?????????type:?"POST",

    ?????????async:?true,??????// 異步上傳

    ?????????data: form,

    ?????????contentType:?false,?// 必須false才會自動加上正確的Content-Type

    ?????????processData:?false,?// 必須false才會避開jQuery對 formdata 的默認處理。XMLHttpRequest會對 formdata 進行正確的處理

    ?????????xhr:?function?() {

    ????????????let?xhr = $.ajaxSettings.xhr();

    ????????????xhr.upload.addEventListener("progress", (e) => {progressPFunction(e, k)},?false);

    ????????????xhr.upload.onloadstart = (e) => {

    ???????????????progress[k] = {

    ??????????????????last_laoded: 0,

    ??????????????????last_time: e.timeStamp,

    ???????????????};

    ????????????};

    ????????????xhr.upload.onloadend = () => {

    ???????????????delete?progress[k];

    ????????????};

    ????????????return?xhr;

    ?????????},

    ?????????success:?function?(data) {

    ????????????data = JSON.parse(data);

    ????????????data.forEach((i) => {

    ???????????????console.log(i.code, i.file_url);

    ????????????});

    ?????????},

    ?????????error:?function?() {

    ????????????alert("aaa上傳失敗!");

    ?????????},

    ??????});

    ???}

    ?

    ?}

    ?

    // 多文件串行上傳

    function?SerialUploadFile() {

    ?

    ?

    ???var?fileObj = document.getElementById("file").files;??// js 獲取文件對象

    ?

    ???let?domStr = `<div>

    ?????????????????????<progress?class='progressBar'?id='pro'?value=''?max=''></progress>

    ?????????????????????<span?class='percentage'?id='per'></span>

    ?????????????????</div>`;

    ???$("body").append(domStr);

    ?

    ???// FormData 對象

    ???var?form =?new?FormData();

    ???form.append("author",?"xueba");?????????????// 可以增加表單數(shù)據(jù)

    ???for?(let?i = 0; i < fileObj.length; i++)

    ???{

    ??????form.append("file", fileObj[i]);????????// 文件對象

    ???}

    ?

    ???// jQuery ajax

    ???$.ajax({

    ??????url:?"/file_upload/",

    ??????type:?"POST",

    ??????async:?true,??????// 異步上傳

    ??????data: form,

    ??????contentType:?false,?// 必須false才會自動加上正確的Content-Type

    ??????processData:?false,?// 必須false才會避開jQuery對 formdata 的默認處理。XMLHttpRequest會對 formdata 進行正確的處理

    ??????xhr:?function?() {

    ?????????let?xhr = $.ajaxSettings.xhr();

    ?????????xhr.upload.addEventListener("progress", progressSFunction,?false);

    ?????????xhr.upload.onloadstart = (e) => {

    ????????????progress[0] = {

    ??????????????last_laoded: 0,

    ??????????????last_time: e.timeStamp,

    ???????????};

    ????????????console.log("開始上傳",progress);

    ?????????};

    ?????????xhr.upload.onloadend = () => {

    ????????????delete?progress[0];

    ????????????console.log("結(jié)束上傳",progress);

    ?????????};

    ?????????return?xhr;

    ??????},

    ??????success:?function?(data) {

    ?????????data = JSON.parse(data);

    ?????????data.forEach((i) => {

    ????????????console.log(i.code, i.file_url);

    ?????????});

    ??????},

    ??????error:?function?() {

    ?????????alert("aaa上傳失敗!");

    ??????},

    ???});

    ?

    }

    ?

    // jQuery版本進度條

    function?Progressbar(e) {

    ???var?bar = $("#progressBar");?// 進度條

    ???var?num = $("#percentage");??// 百分比

    ???if?(e.lengthComputable) {

    ??????bar.attr("max", e.total);

    ??????bar.attr("value", e.loaded);

    ??????num.text(Math.round(e.loaded / e.total * 100) +?"%");

    ???}

    ?

    }

    ?

    ?

    ?// 原生js版 并行進度條

    ?function?progressPFunction(e, k) {

    ???var?progressBar = document.getElementById(`pro${k}`);

    ???var?percentageDiv = document.getElementById(`per${k}`);

    ???if?(e.lengthComputable) {

    ??????progressBar.max = e.total;

    ??????progressBar.value = e.loaded;

    ??????let?speed = (e.loaded - progress[k].last_laoded) / (e.timeStamp - progress[k].last_time) +?" bytes/s";

    ??????let?percent = Math.round(e.loaded / e.total * 100) +?"%";

    ??????progress[k].last_laoded = e.loaded, progress[k].last_time = e.timeStamp;

    ??????percentageDiv.innerHTML = percent +?" "?+ speed;

    ??????console.log(speed);

    ???}

    ?}

    ?

    // 原生js 串行進度條

    function?progressSFunction(e) {

    ???var?progressBar = document.getElementById(`pro`);

    ???var?percentageDiv = document.getElementById(`per`);

    ???if?(e.lengthComputable)?// lengthComputable表示進度信息是否可用

    ???{

    ??????progressBar.max = e.total;

    ??????progressBar.value = e.loaded;

    ??????let?speed = (e.loaded - progress[0].last_laoded) / (e.timeStamp - progress[0].last_time) +?" bytes/s";

    ??????let?percent = Math.round(e.loaded / e.total * 100) +?"%";

    ??????progress[0].last_laoded = e.loaded, progress[0].last_time = e.timeStamp;

    ??????percentageDiv.innerHTML = percent +?" "?+ speed;

    ???}

    }

    Django后端

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    def?file_upload(request):

    ????"ajax文件上傳功能"

    ????resList, fileList?=?[], request.FILES.getlist("file")

    ????dir_path?=?'static/files/{0}/{1}/{2}'.format(time.strftime("%Y"),time.strftime("%m"),time.strftime("%d"))

    ????if?os.path.exists(dir_path)?is?False:

    ????????os.makedirs(dir_path)

    ????for?file?in?fileList:

    ????????file_path?=?'%s/%s'?%?(dir_path,?file.name)

    ????????file_url?=?'/%s/%s'?%?(dir_path,?file.name)

    ????????res?=?{"code":?0,?"file_url": ""}

    ????????with?open(file_path,?'wb') as f:

    ????????????if?f?==?False:

    ????????????????res['code']?=?1

    ????????????for?chunk?in?file.chunks():?# chunks()代替read(),如果文件很大,可以保證不會拖慢系統(tǒng)內(nèi)存

    ????????????????f.write(chunk)

    ????????res['file_url']?=?file_url

    ????????resList.append(res)

    ????return?HttpResponse(json.dumps(resList))

    參考:

    https://www.cnblogs.com/potatog/p/9342448.html

    https://www.w3cmm.com/ajax/progress-events.html

    文章來源:https://www.cnblogs.com/V587Chinese/p/11371380.html

    總結(jié)

    以上是生活随笔為你收集整理的原生态HTML文件上传与下载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    99re视频在线观看 | 国产免费成人 | 国产精品久久久久久久久久久久 | 91网在线观看 | 久久亚洲欧美 | 国产自偷自拍 | 99视频免费在线观看 | 99爱视频在线观看 | 国产精品青草综合久久久久99 | 91爱爱免费观看 | 麻豆va一区二区三区久久浪 | 97在线公开视频 | 亚洲精品乱码久久久久久9色 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 成人午夜片av在线看 | 国产精品视频永久免费播放 | 伊人国产在线播放 | 毛片永久新网址首页 | 日韩三级.com | 色综合久久精品 | 二区三区在线视频 | 亚洲特级片 | 亚洲国产一区二区精品专区 | 国产午夜精品一区二区三区四区 | 国产精品美女久久久久久久 | 97超碰在线资源 | 国产精品门事件 | 国产我不卡| 久久国产精品一国产精品 | 精品久久久久久亚洲综合网站 | 亚洲成人av电影在线 | 超碰97av在线| 伊人夜夜 | 国内精品在线看 | 免费在线激情电影 | 亚洲欧美日韩中文在线 | 国产精品成人久久久 | 国产精品欧美久久久久无广告 | 日韩精品一区二区三区免费视频观看 | 精品中文字幕在线播放 | 正在播放五月婷婷狠狠干 | 久久人人看 | 97看片吧| zzijzzij亚洲日本少妇熟睡 | 国产精品都在这里 | 天天干夜夜爽 | 人人舔人人 | 国产三级视频在线 | 天天操人人要 | 日韩一级黄色片 | 91av在| 国产在线色视频 | 国产精品久久久亚洲 | 亚洲爱爱视频 | 久久黄色成人 | 日韩区欠美精品av视频 | 超碰在线人人97 | 91在线国内视频 | 天天天天色综合 | 91麻豆精品91久久久久同性 | 久久久国产一区二区 | 国产精品成人aaaaa网站 | 国产视频在线免费观看 | 国产精品美女久久久久久久 | av黄色免费网站 | 在线小视频你懂得 | 国产精品99久久久久久武松影视 | 日本黄色免费观看 | 国产在线精品播放 | 日日夜夜综合 | 久久黄色美女 | 国产精品免费观看视频 | www.色婷婷 | 日韩v欧美v日本v亚洲v国产v | 美女黄网久久 | 久久不卡日韩美女 | 亚洲综合日韩在线 | 久久精品96 | 成人午夜在线电影 | 国产精品久久久久久久久久新婚 | 97国产一区二区 | 国产亚洲欧美精品久久久久久 | 久久久精品国产一区二区电影四季 | 97人人模人人爽人人喊中文字 | 久久免费黄色大片 | 日本精品一区二区三区在线播放视频 | 免费毛片一区二区三区久久久 | 成人黄色小视频 | 国产丝袜在线 | 97理论电影 | 欧洲精品视频一区二区 | 久av电影 | 激情五月***国产精品 | 亚洲激情一区二区三区 | 久久超碰97| 天天色综合久久 | 国产精久久| 国产日韩欧美视频 | 欧美成人精品欧美一级乱 | 亚洲区视频在线观看 | 91麻豆精品国产自产在线 | 日韩精品一区二区三区第95 | 九热在线 | 日本精品久久久一区二区三区 | 97av在线视频免费播放 | 超碰97.com | 欧美日韩不卡一区 | 免费在线观看av网址 | 婷婷深爱网 | 深夜成人av| 伊人网综合在线观看 | 欧美日韩视频在线 | 91视频免费视频 | 不卡av在线播放 | 欧洲亚洲女同hd | 免费在线观看av的网站 | 很污的网站 | 91人人网| 热久久国产精品 | 三级av中文字幕 | 国产精品永久免费观看 | 97免费在线观看 | 久久tv视频 | 91在线视频免费91 | 免费视频久久久久 | 婷婷五综合 | 一区久久久 | 深爱激情综合网 | 亚洲成人免费 | 日韩免费电影一区二区 | 亚洲精品视频网 | www.伊人网 | 国产精久久久久久久 | 99久久久久久久久久 | 国产一区二区中文字幕 | 日韩精品一区二区三区高清免费 | av久久久| 在线精品视频免费播放 | 国产一区二区电影在线观看 | 夜色在线资源 | 国内视频1区| 久久草精品| 日韩在线观看中文字幕 | 区一区二区三区中文字幕 | av在线网站免费观看 | 久久69精品久久久久久久电影好 | 色欧美成人精品a∨在线观看 | 最新av在线播放 | 午夜在线观看一区 | 日韩精品视频免费看 | 国产手机视频在线播放 | 精品二区视频 | 黄色成人在线 | 正在播放亚洲精品 | 色婷婷综合成人av | 2018精品视频| 亚洲一区二区视频 | 97视频人人免费看 | 日产乱码一二三区别在线 | 国产精品专区在线观看 | 在线观看免费视频你懂的 | 国产特级毛片 | 九九热免费视频在线观看 | 久久久久亚洲精品中文字幕 | 免费日韩一区二区三区 | 日日日视频 | 99精品欧美一区二区三区 | 成人亚洲免费 | 国产精品原创av片国产免费 | 日韩超碰在线 | 成人av网站在线播放 | 在线免费试看 | 日韩av网站在线播放 | 91精品视频免费看 | 狠狠色狠狠色综合系列 | 免费视频你懂得 | 久草视频免费看 | www.久久免费视频 | 成人av影视观看 | 免费亚洲精品视频 | 免费看一级特黄a大片 | 99性视频 | 精品视频在线播放 | 欧美精品首页 | 久久精品999| 国产亚洲激情视频在线 | 久久久久综合网 | 中文字幕色网站 | 成人av电影免费在线播放 | 久久y| 免费日韩 精品中文字幕视频在线 | 97看片吧 | 久久午夜免费观看 | 成 人 黄 色视频免费播放 | 久久涩视频| 久久国产精品99久久人人澡 | 日韩久久视频 | 亚洲最新av网址 | 国产精品自产拍在线观看网站 | 久久久久国产精品免费 | 午夜av一区二区三区 | 国产精品黄色影片导航在线观看 | 成人在线播放网站 | 亚洲精品99 | 国产成人在线播放 | 亚洲免费在线观看视频 | 国产区久久 | 欧美午夜精品久久久久久孕妇 | 国产麻豆精品免费视频 | 精品亚洲网 | 久久99偷拍视频 | 超碰在线观看99 | 黄色软件在线观看免费 | 婷婷激情欧美 | 国产91在线观看 | 久久人人爽人人爽人人片 | 久久99在线观看 | 粉嫩av一区二区三区入口 | 在线免费观看国产视频 | 五月激情站 | 成人激情开心网 | av成年人电影 | 亚洲乱码中文字幕综合 | 久久午夜精品视频 | 97偷拍在线视频 | 黄色av电影免费观看 | 久久高清 | 国产一级大片免费看 | 天天拍天天色 | 久久www免费人成看片高清 | 国产精品2019 | 在线观看国产永久免费视频 | 午夜精品久久久久久久99水蜜桃 | 99热免费在线 | 日本中文不卡 | 99精品欧美一区二区三区黑人哦 | 欧美一级电影片 | 久草在线视频首页 | 国产麻豆果冻传媒在线观看 | 亚洲成a人片综合在线 | 网站在线观看你们懂的 | 色偷偷网站视频 | 亚洲精品乱码久久久久久高潮 | 97人人爽 | av看片在线观看 | 成人av免费| 美女久久视频 | 激情视频免费观看 | 久久高清免费 | 亚洲在线精品视频 | 欧美精品中文在线免费观看 | 日日弄天天弄美女bbbb | 欧美日韩一区二区三区视频 | 超碰公开在线观看 | 国产伦精品一区二区三区… | 国产精品久久网 | 在线免费观看欧美日韩 | 亚洲码国产日韩欧美高潮在线播放 | 久久久精品久久 | 天天射,天天干 | 91人人爽久久涩噜噜噜 | 日韩在线第一 | 青草视频网 | 激情欧美日韩一区二区 | 亚洲不卡av一区二区三区 | av视屏在线 | 久久久人 | 亚洲一区二区三区精品在线观看 | 日日色综合 | 99久久久国产精品免费99 | 激情综合中文娱乐网 | 日韩av午夜在线观看 | 男女视频91| 狠狠干2018 | 精品一区二区在线免费观看 | 亚洲精品在线电影 | 97视频人人免费看 | 中文字幕免费看 | 日韩电影黄色 | 中文字幕在线影院 | 色国产精品一区在线观看 | 国产精品免费一区二区三区在线观看 | 天天激情天天干 | 中日韩欧美精彩视频 | 丁香激情五月 | www.色午夜,com| 国产成人一级电影 | 一本一本久久a久久 | 亚洲国产精品一区二区尤物区 | 亚洲电影自拍 | 麻豆久久 | 婷婷色在线观看 | 少妇精品久久久一区二区免费 | 国产精品久久99综合免费观看尤物 | 国产精品videossex国产高清 | 91精品国产欧美一区二区成人 | 久久国产精品一区二区三区 | 精品自拍sae8—视频 | 国产精品久久99 | 成人亚洲精品久久久久 | 97色在线观看免费视频 | 九九久久成人 | 热久久国产精品 | 免费福利视频导航 | av成人在线电影 | av福利在线看 | 天天操天天操天天操天天 | 亚洲一区二区三区四区在线视频 | 国产精品s色 | 国产精品网红福利 | 播五月婷婷 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 久久99视频精品 | 亚洲码国产日韩欧美高潮在线播放 | 亚洲日本欧美 | 久久久久久久久电影 | 激情婷婷综合网 | 2018好看的中文在线观看 | av一级一片| 免费高清看电视网站 | 成年人视频免费在线 | 综合天堂av久久久久久久 | 精品亚洲一区二区 | 91精品成人 | 久久综合影音 | 九九视频在线 | 免费观看mv大片高清 | 午夜色性片 | 97成人精品区在线播放 | 日韩欧美一区二区三区在线观看 | 欧美激情精品久久久久久变态 | 中文字幕在线观看网址 | www.神马久久 | 国产经典 欧美精品 | av福利电影 | 国产99一区视频免费 | av短片在线观看 | 精品久久一区二区三区 | 天天爽天天碰狠狠添 | 91成人欧美| 国产成本人视频在线观看 | 97久久精品午夜一区二区 | 超碰在线中文字幕 | 人人干人人超 | 国产经典av | 国产精品一区久久久久 | 久草青青在线观看 | 久久免费公开视频 | 亚洲欧美日韩在线一区二区 | 国产一级性生活视频 | 久草精品在线播放 | 国产精品入口66mio女同 | 亚洲无吗视频在线 | 伊人视频| 97碰碰视频 | 日韩av播放在线 | 6699私人影院 | 亚州人成在线播放 | 色是在线视频 | 91免费高清视频 | 欧美精品第一 | 久久久久 免费视频 | 亚洲人人av | 国产精品久久久久久久久久新婚 | 日本精品一区二区在线观看 | 亚洲国内在线 | 99免费看片 | 日韩激情免费视频 | 久久热首页 | 国产精品久久久一区二区 | 欧美性另类 | 99 视频 高清 | 精品99999 | 国内精品久久久久影院男同志 | 99精品成人 | 久久久久电影 | 在线观看激情av | 免费的黄色的网站 | 天天撸夜夜操 | 国产午夜精品一区二区三区在线观看 | 久草在线观看资源 | 亚洲国产精品一区二区尤物区 | 99国产在线 | 国产人成一区二区三区影院 | 麻豆视传媒官网免费观看 | 96视频在线 | 999一区二区三区 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 一级片视频免费观看 | 国产精品美女久久久网av | 国产欧美在线一区二区三区 | 亚洲国产高清在线观看视频 | 久久精品小视频 | 国产网红在线观看 | 天天色天天操天天爽 | 九九热免费视频在线观看 | 91片在线观看 | 久久成人在线视频 | 美女视频黄免费的久久 | 亚洲国产美女久久久久 | 综合色综合色 | 亚洲三级精品 | 香蕉视频国产在线观看 | 少妇超碰在线 | 久久毛片网站 | 免费在线观看毛片网站 | 国产91综合一区在线观看 | 欧美激情视频免费看 | 午夜精品福利在线 | 九九免费观看全部免费视频 | 国产视频欧美视频 | 国产精品18久久久久久久久久久久 | 日韩成人邪恶影片 | 国产精品一区二区在线观看 | 狠狠伊人 | www中文在线| 免费在线观看日韩欧美 | 一区二区激情 | 欧美精品久久久久久久久久 | 亚洲日韩欧美一区二区在线 | 色福利网站 | av 在线观看 | 精品你懂的 | 精品久久久免费 | 夜夜躁日日躁狠狠躁 | 99高清视频有精品视频 | 中文字幕在线免费观看视频 | 国产 一区二区三区 在线 | 日本黄色大片免费 | 中文字幕一区二区三区四区久久 | 麻豆一精品传二传媒短视频 | 成人在线免费视频 | 在线观看中文字幕av | 免费成人在线观看 | 国产系列精品av | 国产精品夜夜夜一区二区三区尤 | 中文字幕久久亚洲 | 激情丁香5月| 五月天婷婷免费视频 | 成片免费观看视频999 | 超碰97成人 | av性在线| 中文字幕视频播放 | 2019国产精品 | 国产精品对白一区二区三区 | 日韩电影在线视频 | 色吊丝在线永久观看最新版本 | 国产成人99av超碰超爽 | 黄色国产精品 | 亚洲区另类春色综合小说校园片 | av爱干| 日韩一区二区三区在线看 | 午夜精品福利在线 | 国产日韩欧美在线 | 天天干天天干天天 | 久久综合精品国产一区二区三区 | 中文字幕日韩电影 | 久久成人资源 | 国产成人精品一区二区三区福利 | 国产香蕉97碰碰久久人人 | 日韩a在线 | 黄色成品视频 | 精品亚洲欧美无人区乱码 | 天天爽综合网 | 四虎在线免费观看 | 日本电影黄色 | 中文字幕在线国产 | 波多野结衣久久资源 | 日韩成人精品 | 日韩三级久久 | 在线观看黄色的网站 | 国产精品久久久久久久免费大片 | 欧美福利在线播放 | 久久精品79国产精品 | 亚洲aⅴ一区二区三区 | 欧美小视频在线 | 一区免费在线 | av成人免费在线看 | 日本韩国精品在线 | 免费看污网站 | 国产视频一区在线免费观看 | 日韩欧美精品在线视频 | 日韩中文字幕亚洲一区二区va在线 | 91香蕉亚洲精品 | 国产精品精品国产色婷婷 | 国产在线欧美日韩 | 四虎伊人 | 成人aⅴ视频 | 91av久久 | 日韩毛片在线一区二区毛片 | 欧美9999| 精品国产人成亚洲区 | 亚洲视频大全 | 国产一区二区电影在线观看 | 国产精品久久久久久久久久久久午夜 | www免费看片com | 亚洲免费在线看 | 久久精品视频观看 | 毛片网站免费 | 国产在线观| 久久涩视频 | 国产精品久久久电影 | 国产亚洲精品久久久久久网站 | 日本午夜在线亚洲.国产 | 91香蕉视频在线 | 久视频在线 | 99精品福利视频 | 国内精品久久久久久 | 亚洲黄色小说网址 | www.国产精品 | 天天干天天怕 | 婷婷四房综合激情五月 | 国产精品毛片一区视频播 | 国产在线超碰 | 美女网站在线播放 | 九九视频网| 久久久久国产精品www | 欧美日韩性视频在线 | 色先锋av资源中文字幕 | 亚洲久草在线视频 | 亚洲精品久久激情国产片 | 免费看色视频 | 毛片永久免费 | 精品一二三区视频 | 亚洲狠狠操| 久久久久99精品成人片三人毛片 | 国产玖玖精品视频 | 精品在线一区二区 | 狠狠色丁香久久综合网 | 狠狠色丁香久久婷婷综合_中 | 99精品免费观看 | 天堂中文在线视频 | 天天操天天操天天操 | 亚洲成人黄色网址 | 在线免费观看亚洲视频 | 91一区二区三区久久久久国产乱 | 日韩免费视频在线观看 | 日本性视频 | 色全色在线资源网 | 久久国产免费看 | 天天爽天天搞 | 亚洲久久视频 | 欧美一级淫片videoshd | 国产成人免费在线 | 丁香婷婷在线观看 | 婷婷久久丁香 | 日本中文在线播放 | 91亚色视频| 韩国精品在线观看 | 日韩有码中文字幕在线 | 成人在线观看av | 国产特级毛片 | 久久艹影院 | 在线精品视频免费播放 | 国产精品手机在线 | 中文亚洲欧美日韩 | 91精品国产电影 | 天天草网站| 99精品视频免费观看视频 | 国产精品亚 | 国产精品精 | wwwwww国产| 91av中文 | 97电影院网| 超碰97公开| 1024手机基地在线观看 | 日韩有码专区 | 操操碰| 国产一区欧美日韩 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久av影视 | 久久久久久久久久亚洲精品 | 色综合久久五月天 | 91九色在线视频 | 伊人国产在线观看 | 99在线免费视频观看 | 久久精品视频中文字幕 | 成人黄色视 | 国产成人久 | 国产九九九精品视频 | 欧美日韩国产伦理 | 国内精品视频在线播放 | 91高清免费看 | 国产一区二区在线免费视频 | 一级黄色片在线免费观看 | 色婷婷中文 | 国产精品中文字幕在线 | 久久视频中文字幕 | 欧美日韩天堂 | 精品国产大片 | a黄色片| 日本久草电影 | 久久久久久久久黄色 | av在线免费观看黄 | 在线播放av网址 | 色午夜 | 久久99精品久久久久久久久久久久 | 欧美性生活一级片 | 黄色三几片 | www.xxx.性狂虐| 国产精品99在线播放 | 国产精品免费久久久 | 久久综合中文色婷婷 | 日韩在线色视频 | 久久伊人国产精品 | 日韩一区二区三区视频在线 | 欧美孕交vivoestv另类 | 亚洲激情电影在线 | 国产专区一| 成人黄色在线电影 | 亚洲免费不卡 | 成年人免费观看国产 | 美女在线黄 | www.色午夜,com | 精品亚洲免费 | 免费观看一区二区 | 一区二区三区免费在线 | 91麻豆精品国产91久久久久久 | 最近日本中文字幕a | 国产精品大片在线观看 | 中文字幕第一页在线 | 夜夜躁天天躁很躁波 | 免费福利片2019潦草影视午夜 | 日本高清免费中文字幕 | 成 人 黄 色 视频 免费观看 | 91精品国自产在线观看 | 国产精品入口麻豆 | 日韩三级免费 | 欧美在线观看禁18 | 毛片3| 久久久.com| 亚洲一区二区精品在线 | 精品国产成人av在线免 | 精品国产网址 | 国产一区二区中文字幕 | 国产亚洲va综合人人澡精品 | 亚洲成av人片在线观看无 | 国产精品丝袜在线 | 国产精品视频永久免费播放 | 天天操婷婷| 日韩av成人在线 | 成人国产在线 | 又爽又黄又无遮挡网站动态图 | 五月天激情在线 | 日韩精品中文字幕av | 日日夜夜狠狠操 | 超碰97成人 | 91精品在线播放 | 国产69熟 | 丁香久久综合 | 国产69精品久久久久9999apgf | 国产美女视频免费 | 美国三级黄色大片 | 国产美女网站在线观看 | 精品欧美一区二区精品久久 | 日韩精品一区二区三区水蜜桃 | 狠狠色综合网站久久久久久久 | 亚洲精品黄色 | 99久久国产免费,99久久国产免费大片 | 五月丁香| 天天色天天上天天操 | 久久精品激情 | 免费网址你懂的 | 美女视频国产 | 天天摸天天干天天操天天射 | 狠狠操夜夜 | 91在线看免费 | 日本xxxx裸体xxxx17 | 日韩在线中文字幕 | 丰满少妇久久久 | 99久久综合精品五月天 | 亚洲电影黄色 | 五月精品| 网站在线观看你们懂的 | 亚洲天天| 国产精品久久久久久久久久尿 | 国产精品欧美久久 | 深夜免费福利网站 | 成x99人av在线www| 精品国产一区二区三区av性色 | 成人在线观看av | 最新成人在线 | 怡红院成人在线 | 中文资源在线官网 | 99国产精品 | 九九涩涩av台湾日本热热 | 最新av网站在线观看 | 亚洲天堂va | 欧美性爽爽| 三级动态视频在线观看 | 久久久高清视频 | 天天操天天添 | 午夜精品电影一区二区在线 | 精品国产一区二区三区久久久蜜月 | 国产粉嫩在线观看 | 天天操天天透 | 亚洲视频99| 人人草在线视频 | 久久综合九色综合欧美狠狠 | 五月激情五月激情 | 麻豆久久一区 | 国产麻豆电影在线观看 | 国产91精品一区二区绿帽 | 在线观看免费黄视频 | 久草视频免费看 | 成人免费在线播放视频 | 国产亚洲永久域名 | 国产丝袜在线 | 国产精品a级 | 精品欧美日韩 | 免费看的国产视频网站 | 日韩一区二区三区免费电影 | 玖玖在线观看视频 | 国产精品手机视频 | 亚洲日本激情 | 96香蕉视频 | www.日本色| 婷婷色中文字幕 | 人人澡人人爽欧一区 | www.大网伊人 | 在线国产能看的 | 国产偷v国产偷∨精品视频 在线草 | 午夜视频一区二区三区 | 中文字幕中文 | 国产无套精品久久久久久 | 久久久成人精品 | 色资源网免费观看视频 | 2018好看的中文在线观看 | 成人av直播 | 天海冀一区二区三区 | 日韩日韩日韩日韩 | 日韩精品中文字幕在线观看 | 视频在线99 | 成人av中文字幕在线观看 | 亚洲第一香蕉视频 | 亚洲精品网址在线观看 | 中文字幕麻豆 | 粉嫩一二三区 | 欧美一二三视频 | 天天天天天天天天操 | 视频在线一区二区三区 | 日韩精品视频在线观看网址 | 九色在线 | 日日夜夜噜噜噜 | 久久久99精品免费观看app | 91精品国产自产91精品 | 精品人人爽 | 色综合久久久久久久久五月 | 国产精品丝袜 | 狠狠干电影 | 国产日产亚洲精华av | 婷婷丁香导航 | 四虎最新入口 | 国产精品久久久久久婷婷天堂 | 91丨九色丨国产在线 | 99久久精品日本一区二区免费 | 69xx视频| 中文字幕av一区二区三区四区 | 日韩国产精品久久久久久亚洲 | 亚洲区精品视频 | 日本黄色免费电影网站 | 免费三级av | 999日韩 | 久久精品久久精品 | www欧美日韩| 五月花婷婷 | 九九久久成人 | 日韩久久午夜一级啪啪 | 激情视频免费观看 | 天天操天天干天天爱 | 欧美a级在线播放 | 中文字幕一区二区三区乱码不卡 | 免费看片黄色 | 碰碰影院 | 天天碰天天操视频 | 在线国产观看 | 国产黄色片久久 | 激情婷婷久久 | 天海翼一区二区三区免费 | 精品二区久久 | 免费高清无人区完整版 | 精品国产乱码久久久久久浪潮 | 久久综合狠狠综合久久综合88 | 一区二区av | 国产精品久久亚洲 | 国产精品毛片一区 | 亚洲国产网站 | 九九热有精品 | 色吊丝在线永久观看最新版本 | 91免费网址 | 91九色视频在线观看 | 久久国产剧场电影 | 91精品免费 | 婷婷久月 | 精品国产乱码一区二 | 日本久久高清视频 | 午夜精品一二区 | av在线免费观看网站 | 看黄色.com | 国产成人精品国内自产拍免费看 | 日日干夜夜干 | 亚洲国产精久久久久久久 | 免费看黄20分钟 | 亚洲精品国产精品国自产 | 久久99热这里只有精品 | 久草在线资源视频 | 欧美日本高清视频 | 天堂av官网 | 500部大龄熟乱视频使用方法 | 免费高清看电视网站 | www.91成人| 亚洲综合欧美激情 | 色婷婷狠狠五月综合天色拍 | 中文字幕电影高清在线观看 | 亚洲成a人片在线www | 日本少妇久久久 | 欧美中文字幕第一页 | 91亚洲永久精品 | 天天摸天天舔 | 国产v亚洲v | 99精品一区| 人人dvd | 国产在线观看你懂得 | 国产专区视频 | 中文字幕在线字幕中文 | 黄色小视频在线观看免费 | 97色在线视频 | 久久激情视频网 | 日韩av伦理片 | 夜色资源站国产www在线视频 | 97国产大学生情侣酒店的特点 | 欧美精品在线一区 | 成人一区二区三区中文字幕 | 久久夜色精品国产欧美乱 | 91视频在线观看免费 | 韩国av免费| 亚洲综合狠狠干 | 黄色大全在线观看 | 国内精品二区 | 人人爽久久涩噜噜噜网站 | 久久综合狠狠综合 | 成人av在线网址 | 国产资源免费在线观看 | 欧美精品被 | 91日韩在线播放 | 久久国产精品小视频 | 毛片网在线播放 | 欧美国产视频在线 | 亚洲午夜久久久影院 | av在线影片 | 91在线porny国产在线看 | 久久精品免视看 | 成人av电影在线观看 | 91精品国产91p65| 亚洲精品xxxx| 夜夜视频欧洲 | 日韩av免费在线电影 | 天天干天天射天天操 | 在线看一级片 | 狠狠干夜夜操天天爽 | 日韩视频在线播放 | 精品国产一区二区三区不卡 | 91视频久久| 高清免费av在线 | 麻豆视频免费播放 | 又黄又刺激又爽的视频 | 亚洲精品www久久久 www国产精品com | 日韩mv欧美mv国产精品 | 久草在线视频资源 | 欧美极品少妇xbxb性爽爽视频 | 天天夜夜狠狠操 | 亚洲伦理电影在线 | 欧美aⅴ在线观看 | 成人免费网站在线观看 | 欧美精品中文字幕亚洲专区 | 成年人免费av网站 | 一区二区三区电影大全 | 一区二区三区在线免费 | 又黄又爽又湿又无遮挡的在线视频 | 偷拍福利视频一区二区三区 | 天天操综合网站 | 中文字幕影片免费在线观看 | 在线观看免费视频 | 99久久婷婷国产一区二区三区 | 久久再线视频 | 国产一级精品视频 | 51精品国自产在线 | 婷婷播播网 | 中文字幕亚洲国产 | 五月婷婷电影网 | 日韩精品一区二区在线视频 | 日日夜色 | 97视频免费观看2区 亚洲视屏 | 亚洲综合最新在线 | 成年人免费在线看 | 国产成人精品一区二区在线观看 | 日韩免费视频 | 日韩天堂在线观看 | 日韩精品综合在线 | 国产成人一区二区在线观看 | 欧美精品v国产精品v日韩精品 | 国产一级片一区二区三区 | 天天爽夜夜爽人人爽一区二区 | 激情视频在线高清看 | 日本高清免费中文字幕 | 日韩亚洲在线 | 色之综合网 | 99精品视频免费看 | 黄色av播放 | 亚洲精品午夜久久久久久久久久久 | 亚洲精品99久久久久中文字幕 | 久久视频这里有精品 | 黄色一级大片在线观看 | 亚洲va在线va天堂va偷拍 | 日韩三级视频在线看 | 999电影免费在线观看 | 免费成人短视频 | 99精品成人| 亚洲国产精品500在线观看 | 96久久精品 | 久久精品国产亚洲精品2020 | 天天综合久久综合 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 日韩在线视频播放 | 国产一区二区不卡视频 | 99久久久久国产精品免费 | 色a综合 | 在线观看亚洲精品视频 | 又黄又刺激又爽的视频 | 激情网色 | 日日爽 | 狠狠躁日日躁狂躁夜夜躁av | 免费特级黄毛片 | 在线影院中文字幕 | 国产精品五月天 | 日韩中字在线 | 黄色av观看 | 亚洲精品乱码久久久久久蜜桃不爽 | 免费观看91| 一区二区三区在线视频观看58 | 久久精品99久久久久久2456 | 丁香午夜婷婷 | 一区二区三区在线不卡 | 国产精品久久一卡二卡 | 国内成人精品视频 | 三级黄色在线观看 | 日韩三级视频在线看 | 亚洲国产欧美在线看片xxoo | 97国产电影 | 黄色精品久久久 | 超碰.com| 亚洲精品乱码久久久久久 | 久久这里只有精品视频首页 | 成人av免费在线播放 | 亚洲视频电影在线 | 一区二区日韩av | 国产成人专区 | 天天鲁一鲁摸一摸爽一爽 | 欧美成人在线免费观看 | 亚洲精品国产精品国自产在线 | а中文在线天堂 | 狠狠干美女| 人人要人人澡人人爽人人dvd | 久久国产精品99久久久久久丝袜 | 日日夜夜国产 | 成人黄色毛片视频 | 69精品久久| 成人a视频片观看免费 | 91九色性视频 | 伊人伊成久久人综合网站 | 国产一级片免费观看 | 午夜国产福利在线 | 日韩在线观看视频在线 | 国产精品久久久久久久久软件 | 免费观看v片在线观看 | av黄免费看 | 99精品视频在线播放免费 | 日批视频在线 | 久久久久成人精品免费播放动漫 | 精品久久一二三区 | 国产91免费观看 | 亚洲国产欧美在线人成大黄瓜 | 探花视频在线观看免费版 | 亚洲性xxxx| 国产精品久久久久影视 | 日韩精品最新在线观看 | 天天操天天操一操 | 亚洲成av人片在线观看无 | 中文字幕在线观看一区 | 国产一卡久久电影永久 | 天天艹日日干 | a天堂在线看 | 911国产精品 | 少妇av网| 91精品婷婷国产综合久久蝌蚪 | 黄色免费观看视频 | 国产va精品免费观看 | 日韩欧美电影网 |