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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

[转]仿163网盘无刷新文件上传系统

發布時間:2024/8/22 windows 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]仿163网盘无刷新文件上传系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?原文鏈接:http://www.cnblogs.com/cloudgamer/archive/2008/10/20/1314766.html

這個仿163網盤無刷新文件上傳系統,并沒有用使用.net的控件,完全的手工制作。前臺基本上是靜態的,跟后臺沒有關系,所以后臺用什么語言做都可以(后面有各個版本的實例下載)。
本來覺得這個系統會很復雜,但把每個部分都分析清楚后,其實需要的技術并不高。不過當我把各個功能函數都整理好準備進行封裝時,卻發現要把程序封裝不是那么容易,因為程序跟html的耦合度太高。然后我逐步把程序中操作html相關的部分分離出來,首先把簡單的分離,接著是文件列表,然后是file控件,最后是一些提示性程序。經過幾次嘗試才把整個結構封裝好,現在程序結構應該算比較清晰,有什么不明白的地方歡迎留言。


效果預覽

上傳文件
添加文件:
文件路徑
沒有添加文件?
溫馨提示:最多可同時上傳 3個文件,只允許上傳 jpg,gif文件。
???

這里的預覽只是前臺的效果,要整個系統測試請下載完整實例。

程序說明

【無刷新上傳】
要實現文件上傳,form必須設置幾個屬性:
1.action:設為要處理數據的頁面地址;
2.method:設為"post";
3.enctype/encoding:必須設為"multipart/form-data",這里要注意的是在ie中用js修改form的enctype屬性是沒有效果的,只能修改encoding;

后面兩個屬性程序初始化時都有設置:

this.Form.method?=?"post";
this.Form.encoding?=?"multipart/form-data";


要注意這里的無刷新不是ajax哦,而是利用“古老”的iframe。
由于ajax提交數據必須先獲取數據,而js(一般情況下)是不能操作客戶端文件,要獲取文件數據就更不用說了,所以只能用iframe來做。
先說說iframe實現無刷新上傳的原理:利用form的target屬性,把數據提交到頁面中一個(通常為隱藏的)iframe上直觀點說就是把“刷新”留給iframe。
其實原理跟一般用iframe實現無刷新提交表單是一樣的,只是這里換成是文件。
這里關鍵就是把form的target設為iframe的name:

this.Form.target?=?this._FrameName;


【iframe】
如果沒有自定義iframe,程序在初始化時會自動創建無刷新所需的iframe的。
首先必須選擇一個iframe名,這在無刷新時是必須的,為了每個實例能創建各自的iframe,這里用了一個隨機數:

this._FrameName?=?"uploadFrame_"?+?Math.floor(Math.random()?*?1000);


也可以用一個遞增的計算器來代替隨機數。

接著創建iframe,本以為用document.createElement("iframe")創建再設置它的name屬性就行了。
卻發現這樣設置的name在ie居然不認(有說name是只讀屬性),還好在網上找到一個方法:“IE 創建元素,還有一個特點,就是可以連同屬性一同創建”。
例如我想給動態創建的iframe設置name,可以這樣:

document.createElement("<iframe?name=\""?+?this._FrameName?+?"\">")

不過這個方式在ff會報錯:
uncaught exception: String contains an invalid character (NS_ERROR_DOM_INVALID_CHARACTER_ERR)
估計是用createElement時不能帶name,標準應該也是這樣,所以兼容的方式這樣寫:

Code
var?oFrame?=?isIE???document.createElement("<iframe?name=\""?+?this._FrameName?+?"\">")?:?document.createElement("iframe");
//為ff設置name
oFrame.name?=?this._FrameName;
oFrame.style.display?
=?"none";

關于這方面更詳細的內容請看這里。

創建完還需要插入到body中,一般的做法是使用document.body.appendChild,但在ie中會有“已終止操作”錯誤,可以用下面這段代碼測試:

Code
<body>
<div>
<script>
document.body.appendChild(document.createElement(
"div"));
</script>
</div>
</body>

網上找到一個解析:“原來FF下的實現機制是當頁面還沒有完全讀取完時body元素就已經存在了,而IE只有頁面完全讀取結束body元素才會存在,所以在頁面中插入上面這條語句在IE下就會出現錯誤”。
我在web開發未解之謎中也提到了這個現象,我這里使用了insertBefore代替:

document.body.insertBefore(oFrame,?document.body.childNodes[0]);

在服務器端文件傳送完(或失敗)之后,怎么通知客戶端呢?
這里說說我的方法,首先我在客戶端定義一個函數:

function?Finish(msg){?alert(msg);?location.href?=?location.href;?}

很簡單,就是顯示提示并重新加載頁面(如果使用reload會導致ff中iframe重復加載數據)。
那服務器端如何通知客戶端的問題,就是iframe如何跟主頁面交互。
答案是通過window.parent或window.top,在iframe中parent和top屬性“分別返回立即父窗口和最上層的祖先窗口”。
例如我在服務器端處理完數據之后會輸出:

context.Response.Write("<script>window.parent.Finish('"?+?_msg?+?"');</script>");

就會執行主頁面的Finish函數了。


【多文件上傳】
對于多文件上傳,這里的目的是如何做到163網盤那樣,只用一個file控件就實現多文件上傳。
這里參考了163網盤的思路,下面說說如何實現:
首先必須有一個文件空間(我自己定的名字),例如程序中的"idFile"對象,這個空間不需要內容甚至一個div就可以,主要是用來存放file控件,程序中Folder屬性就是這個文件空間對象。
ps:這里的要求是把file控件都控制在文件空間里,即使不是單file控件的情況。
再說說Files屬性,這個屬性放的是file控件集合,方便獲取file控件,在下面“文件列表”就會用到。

處理這些file控件的程序主要在Ini函數中:
首先是處理文件空間中的file控件:

Code
this.Files?=?[];
//整理文件空間,把有值的file放入文件集合
Each(this.Folder.getElementsByTagName("input"),?Bind(this,?function(o){
????
if(o.type?==?"file"){?o.value?&&?this.Files.push(o);?this.onIniFile(o);?}
}))

可以看到這里主要是把file控件放入到Files中,并執行附加函數onIniFile,我是這樣定義這個函數的:

onIniFile:?function(file){?file.value???file.style.display?=?"none"?:?this.Folder.removeChild(file);?}

這里為了實現單file控件,把原來有值的file都隱藏了,還有那個“單file控件”呢?
別急,接著就在文件空間插入一個新的file控件:

Code
var?file?=?document.createElement("input");
file.name?
=?this.FileName;?file.type?=?"file";?file.onchange?=?Bind(this,?function(){?this.Check(file);?this.Ini();?});
this.Folder.appendChild(file);

可以看到file控件的name是FileName屬性的值,默認是空的,如果服務器端需要這個name的話就可以設置。
這里可以看到每個file控件都有onchange來執行檢測函數Check,這樣每次選擇文件后都會用Check檢測一次,這里說說這個Check函數:

Code
//檢測變量
var?bCheck?=?true;
//進行空值、文件數、后綴名、同值檢測
if(!file.value){
????bCheck?
=?false;?this.onEmpty();
}?
else?if(this.Limit?&&?this.Files.length?>=?this.Limit){
????bCheck?
=?false;?this.onLimite();
}?
else?if(!!this.ExtIn.length?&&?!RegExp("\.("?+?this.ExtIn.join("|")?+?")$",?"i").test(file.value)){
????
//檢測是否允許后綴名
????bCheck?=?false;?this.onNotExtIn();
}?
else?if(!!this.ExtOut.length?&&?RegExp("\.("?+?this.ExtOut.join("|")?+?")$",?"i").test(file.value))?{
????
//檢測是否禁止后綴名
????bCheck?=?false;?this.onExtOut();
}?
else?if(!!this.Distinct)?{
????Each(
this.Files,?function(o){?if(o.value?==?file.value){?bCheck?=?false;?}?})
????
if(!bCheck){?this.onSame();?}
}

里面有一個檢測變量bCheck,然后進行空值、文件數限制、后綴名、相同文件的檢測,當其中一個步驟不通過bCheck就會設為false,一個常用的檢測結構。
這里說說檢測后綴名,由于js不能像后臺那樣獲取文件的文件類型,所以只能根據后綴名來判斷,例如用正則判斷:

/\.(jpg|gif)$/i.test(file.value)

這樣判斷顯然是不夠的,所以如果要做文件類型判斷的話一定要在后臺用ContentType再判斷一次。
最后如果沒有通過檢測就會執行onFail函數:

!bCheck?&&?this.onFail(file);

我在onFail函數中設定了移除沒有通過檢測的file控件:

onFail:?function(file){?this.Folder.removeChild(file);?}


這樣就基本實現(正確的說是模擬)了單file控件上傳多個文件的效果了。


【文件列表】
在上面的Ini函數中,最后執行了一個附加函數onIni,這個函數是用戶自己定義的,我就在這個函數中添加文件列表。

在之前先說說添加文件列表的函數AddList,這個函數是用來把file控件的值列在一個table里面。
函數的參數是一個二維數組,其中第一維是行(tr),第二維是列(td)。
首先獲取列表對象FileList,再定義一個文檔碎片oFragment來操作dom:

var?FileList?=?$("idFileList"),?oFragment?=?document.createDocumentFragment();

然后用兩個Each把二維數組插入到文檔碎片中:

Code
Each(rows,?function(cells){
????
var?row?=?document.createElement("tr");
????Each(cells,?
function(o){
????????
var?cell?=?document.createElement("td");
????????
if(typeof?o?==?"string"){?cell.innerHTML?=?o;?}else{?cell.appendChild(o);?}
????????row.appendChild(cell);
????});
????oFragment.appendChild(row);
})

其中用了一個判斷if(typeof o == "string"),如果是文本就直接用innerHTML插入td,如果不是文本(這里不是文本就是一個對象)就用appendChild插入到td。
當數據都插入到文檔碎片,就準備把文檔碎片插入到FileList中,不過還有一個步驟就是清空FileList中原有的數據。
本來把innerHTML設為空來清空FileList會更有效率,但ie的table中只有td支持innerHTML,所以只好用removeChild來清空:

while(FileList.hasChildNodes()){?FileList.removeChild(FileList.firstChild);?}

之后就可以把文檔碎片插入了:

FileList.appendChild(oFragment);


繼續看onIni函數,現在只需要把要顯示的數據組成一個二維數組,再用AddList就能顯示文件列表了,這時存放file控件集合的Files屬性就大有用處了。
首先定義一個放顯示數據的數組:

var?arrRows?=?[];

然后根據Files對這個數組賦值:

Code
if(this.Files.length){
????
var?oThis?=?this;
????Each(
this.Files,?function(o){
????????
var?a?=?document.createElement("a");?a.innerHTML?=?"取消";?a.href?=?"javascript:void(0);";
????????a.onclick?
=?function(){?oThis.Delete(o);?return?false;?};
????????arrRows.push([o.value,?a]);
????});
}?
else?{?arrRows.push(["<font?color='gray'>沒有添加文件</font>",?"&nbsp;"]);?}
AddRow(arrRows);

當Files沒有控件時只是輸出“沒有添加文件”,有控件時就會把每個file控件的要顯示數據放到一個數組中,可以看到這個數組其實就是td內容的集合,接著把這個數組加入到arrRows中形成二維數組,最后把得到的arrRows給AddRow函數顯示數據就行了。
為了能取消指定的file控件,這里插入了一個a來觸發刪除函數Delete,這里也有一個技巧,這里把href設為"javascript:void(0);",并在onclick中返回false,這樣能最大程度的實現僅僅執行js而不去跳轉。

在表單提交時也要重新顯示文件列表,表單提交后就不允許刪除文件了,只顯示文件路徑就行了:

Code
$("idBtnupload").onclick?=?function(){
????
//顯示文件列表
????var?arrRows?=?[];
????Each(fu.Files,?
function(o){?arrRows.push([o.value,?"&nbsp;"]);?});
????AddList(arrRows);
????
????fu.Folder.style.display?
=?"none";
????$(
"idProcess").style.display?=?"";
????$(
"idMsg").innerHTML?=?"正在添加文件到您的網盤中,請稍候……<br?/>有可能因為網絡問題,出現程序長時間無響應,請點擊“<a?href='?'><font?color='red'>取消</font></a>”重新上傳文件";
????
????fu.Form.submit();
}

說到表單提交要注意一個問題,就是表單是不能嵌套的,最好是把表單放到服務器表單之外,沒有辦法才使用服務器表單作為提交表單(由于程序會修改提交表單的屬性,所以盡量不要這樣使用)。

這樣文件列表就完成了,有興趣的話也可以自己封裝一下這個功能。


【file樣式】
到此,程序的功能都已經實現了,但在163網盤中還有一個特別的地方,就是file控件的樣式。
如果有用過163網盤上傳文件,就知道那個file控件就像一個按鈕,但功能確實是一個file控件。
但當自己嘗試修改file控件的樣式時,發現單單設置file控件的樣式并不能實現想要的效果。
于是我想了另一個辦法,用一個button來模擬,結果發現也不行,用js根本操作不了file控件,應該是考慮到安全問題吧。
最后是參考了163網盤和muxrwc模擬126附件添加的效果,總結了這個方法:
1.指定用一個容器(例如程序中的idFile)。
容器最好指定高和寬,并且overflow為hidden,不是塊級元素的最好設display為block(為了高和寬的正確呈現);
2.在容器里放一個file控件,并設置樣式,使能觸發彈出選擇文件框的部分覆蓋整個容器,并設置成全透明。
容器指定準確的高和寬就是為了能通過file控件中不多的能設置的樣式來覆蓋整個容器;
3.現在已經把容器模擬成file控件了,可以直接設置容器的樣式來模擬設置file控件的樣式了。

在程序中主要用file控件的margin-left和font-size來實現覆蓋整個容器:

Code
a.files?input?{
????margin-left
:-350px;
????font-size
:30px;
????cursor
:pointer;
????filter
:alpha(opacity=0);
????opacity
:0;
}

至于容器,我使用了有偽類hover的a元素(雖然CSS2中hover可以應用于任何對象,但ie6不支持)。
這里用了一個常用的小技巧,就是用一張圖片作為背景通過在hover時修改background-position來實現兩張圖片的效果:

Code
a.files?{
????width
:90px;
????height
:30px;
????overflow
:hidden;
????display
:block;
????border
:1px?solid?#BEBEBE;
????background
:url(img/fu_btn.gif)?left?top?no-repeat;
????text-decoration
:none;
}
a.files:hover?
{
????background-color
:#FFFFEE;
????background-position
:0?-30px;
}

在點擊這個a時后會出現一個虛線框,在這里顯然不太美觀,可以把outline設為none來去掉,可是ie又不支持,在網上找到一個方法ie可以把hideFocus設為true來隱藏聚焦(即不顯示這個虛線框,hideFocus可以在js或html中設置,也可以通過expression放到css中:

Code
a.files,?a.files?input?{
????outline
:none;/*ff*?/
????hide-focus:expression(this.hideFocus=true);/*ie*?/
}


這樣完全模擬了163網盤的效果了。


【后臺】

前臺基本完成了,就到后臺啦。后臺的功能很簡單,就是處理傳遞過來的文件數據。
這里像js + .Net 圖片切割系統那樣使用ashx文件處理IHttpHandler發送過來的數據。
程序很簡單,就直接貼代碼了:

Code
int?iTotal?=?context.Request.Files.Count;

if?(iTotal?==?0)
{
????_msg?
=?"沒有數據";
}
else
{
????
int?iCount?=?0;

????
for?(int?i?=?0;?i?<?iTotal;?i++)
????{
????????HttpPostedFile?file?
=?context.Request.Files[i];

????????
if?(file.ContentLength?>?0?||?!string.IsNullOrEmpty(file.FileName))
????????{
????????????
//保存文件
????????????file.SaveAs(System.Web.HttpContext.Current.Server.MapPath("./file/"?+?Path.GetFileName(file.FileName)));

????????????
//這里可以根據實際設置其他限制
????????????if?(++iCount?>?UploadFileLimit)
????????????{
????????????????_msg?
=?"超過上傳限制:"?+?UploadFileLimit;
????????????????
break;
????????????}
????????}
????}
}

這里只檢測了有無文件和文件數限制,其他檢測如文件大小等可以自己擴展,應該不難。
處理完數據之后就通知客戶端:

context.Response.Write("<script>window.parent.Finish('"?+?_msg?+?"');</script>");

這個在上面iframe的內容中已經說明了。


使用說明

基本使用很簡單,實例化一個file對象,其中參數分別是form對象,文件空間對象:

new?FileUpload("uploadForm",?"idFile")

這樣就實現了一個簡單的無刷新上傳文件表單。

還可以使用這幾個屬性:
Form//表單
Folder//文件控件存放空間
Files//文件集合

更多的功能可以選擇設置這些屬性:
屬性名:默認值//說明
FileName:"",//文件上傳控件的name,配合后臺使用
FrameName:"",//iframe的name,要自定義iframe的話這里設置name
onIniFile:function(){},//整理文件時執行(其中參數是file對象)
onEmpty:function(){},//文件空值時執行
Limit:0,//文件數限制,0為不限制
onLimite:function(){},//超過文件數限制時執行
Distinct:true,//是否不允許相同文件
onSame:function(){},//有相同文件時執行
ExtIn:[],//允許后綴名
onNotExtIn:function(){},//不是允許后綴名時執行
ExtOut:[],//禁止后綴名,當設置了ExtIn則ExtOut無效
onExtOut:function(){},//是禁止后綴名時執行
onFail:function(){},//文件不通過檢測時執行(其中參數是file對象)
onIni:function(){}//重置時執行

使用方法可以參考實例。

程序中提供了下面幾個方法:
Ini 整理空間
Check 檢測file對象
Delete 刪除指定file
Clear 刪除全部file


完整程序

樣式設置

Code
.fu_list?{
????width
:600px;
????background
:#ebebeb;
????font-size
:12px;
}
.fu_list?td?
{
????padding
:5px;
????line-height
:20px;
????background-color
:#fff;
}
.fu_list?table?
{
????width
:100%;
????border
:1px?solid?#ebebeb;
}
.fu_list?thead?td?
{
????background-color
:#f4f4f4;
}
.fu_list?b?
{
????font-size
:14px;
}
/*file容器樣式*/
a.files?
{
????width
:90px;
????height
:30px;
????overflow
:hidden;
????display
:block;
????border
:1px?solid?#BEBEBE;
????background
:url(img/fu_btn.gif)?left?top?no-repeat;
????text-decoration
:none;
}
a.files:hover?
{
????background-color
:#FFFFEE;
????background-position
:0?-30px;
}
/*file設為透明,并覆蓋整個觸發面*/
a.files?input?
{
????margin-left
:-350px;
????font-size
:30px;
????cursor
:pointer;
????filter
:alpha(opacity=0);
????opacity
:0;
}
/*取消點擊時的虛線框*/
a.files,?a.files?input?
{
????outline
:none;/*ff*/
????hide-focus
:expression(this.hideFocus=true);/*ie*/
}

html代碼

Code
<form?id="uploadForm"?action="File.ashx">
??
<table?border="0"?cellspacing="1"?class="fu_list">
????
<thead>
??????
<tr>
????????
<td?colspan="2"><b>上傳文件</b></td>
??????
</tr>
????
</thead>
????
<tbody>
??????
<tr>
????????
<td?align="right"?width="15%"?style="line-height:35px;">添加文件:</td>
????????
<td><a?href="javascript:void(0);"?class="files"?id="idFile"></a>?<img?id="idProcess"?style="display:none;"?src="img/loading.gif"?/></td>
??????
</tr>
??????
<tr>
????????
<td?colspan="2"><table?border="0"?cellspacing="0">
????????????
<thead>
??????????????
<tr>
????????????????
<td>文件路徑</td>
????????????????
<td?width="100"></td>
??????????????
</tr>
????????????
</thead>
????????????
<tbody?id="idFileList">
????????????
</tbody>
??????????
</table></td>
??????
</tr>
??????
<tr>
????????
<td?colspan="2"?style="color:gray">溫馨提示:最多可同時上傳?<b?id="idLimit"></b>?個文件,只允許上傳?<b?id="idExt"></b>?文件。?</td>
??????
</tr>
??????
<tr>
????????
<td?colspan="2"?align="center"?id="idMsg"><input?type="button"?value="開始上傳"?id="idBtnupload"?disabled="disabled"?/>
??????????
&nbsp;&nbsp;&nbsp;
??????????
<input?type="button"?value="全部取消"?id="idBtndel"?disabled="disabled"?/>
????????
</td>
??????
</tr>
????
</tbody>
??
</table>
</form>


程序代碼

Code
var?isIE?=?(document.all)???true?:?false;

var?$?=?function?(id)?{
????
return?"string"?==?typeof?id???document.getElementById(id)?:?id;
};

var?Class?=?{
??create:?
function()?{
????
return?function()?{
??????
this.initialize.apply(this,?arguments);
????}
??}
}

var?Extend?=?function(destination,?source)?{
????
for?(var?property?in?source)?{
????????destination[property]?
=?source[property];
????}
}

var?Bind?=?function(object,?fun)?{
????
return?function()?{
????????
return?fun.apply(object,?arguments);
????}
}

var?Each?=?function(list,?fun){
????
for?(var?i?=?0,?len?=?list.length;?i?<?len;?i++)?{?fun(list[i],?i);?}
};

//
var?FileUpload?=?Class.create();
FileUpload.prototype?
=?{
??
//表單對象,文件控件存放空間
??initialize:?function(form,?folder,?options)?{
????
????
this.Form?=?$(form);//表單
????this.Folder?=?$(folder);//文件控件存放空間
????this.Files?=?[];//文件集合
????
????
this.SetOptions(options);
????
????
this.FileName?=?this.options.FileName;
????
this._FrameName?=?this.options.FrameName;
????
this.Limit?=?this.options.Limit;
????
this.Distinct?=?!!this.options.Distinct;
????
this.ExtIn?=?this.options.ExtIn;
????
this.ExtOut?=?this.options.ExtOut;
????
????
this.onIniFile?=?this.options.onIniFile;
????
this.onEmpty?=?this.options.onEmpty;
????
this.onNotExtIn?=?this.options.onNotExtIn;
????
this.onExtOut?=?this.options.onExtOut;
????
this.onLimite?=?this.options.onLimite;
????
this.onSame?=?this.options.onSame;
????
this.onFail?=?this.options.onFail;
????
this.onIni?=?this.options.onIni;
????
????
if(!this._FrameName){
????????
//為每個實例創建不同的iframe
????????this._FrameName?=?"uploadFrame_"?+?Math.floor(Math.random()?*?1000);
????????
//ie不能修改iframe的name
????????var?oFrame?=?isIE???document.createElement("<iframe?name=\""?+?this._FrameName?+?"\">")?:?document.createElement("iframe");
????????
//為ff設置name
????????oFrame.name?=?this._FrameName;
????????oFrame.style.display?
=?"none";
????????
//在ie文檔未加載完用appendChild會報錯
????????document.body.insertBefore(oFrame,?document.body.childNodes[0]);
????}
????
????
//設置form屬性,關鍵是target要指向iframe
????this.Form.target?=?this._FrameName;
????
this.Form.method?=?"post";
????
//注意ie的form沒有enctype屬性,要用encoding
????this.Form.encoding?=?"multipart/form-data";

????
//整理一次
????this.Ini();
??},
??
//設置默認屬性
??SetOptions:?function(options)?{
????
this.options?=?{//默認值
????????FileName:????"",//文件上傳控件的name,配合后臺使用
????????FrameName:????"",//iframe的name,要自定義iframe的話這里設置name
????????onIniFile:????function(){},//整理文件時執行(其中參數是file對象)
????????onEmpty:????function(){},//文件空值時執行
????????Limit:????????0,//文件數限制,0為不限制
????????onLimite:????function(){},//超過文件數限制時執行
????????Distinct:????true,//是否不允許相同文件
????????onSame:????????function(){},//有相同文件時執行
????????ExtIn:????????[],//允許后綴名
????????onNotExtIn:????function(){},//不是允許后綴名時執行
????????ExtOut:????????[],//禁止后綴名,當設置了ExtIn則ExtOut無效
????????onExtOut:????function(){},//是禁止后綴名時執行
????????onFail:????????function(){},//文件不通過檢測時執行(其中參數是file對象)
????????onIni:????????function(){}//重置時執行
????};
????Extend(
this.options,?options?||?{});
??},
??
//整理空間
??Ini:?function()?{
????
//整理文件集合
????this.Files?=?[];
????
//整理文件空間,把有值的file放入文件集合
????Each(this.Folder.getElementsByTagName("input"),?Bind(this,?function(o){
????????
if(o.type?==?"file"){?o.value?&&?this.Files.push(o);?this.onIniFile(o);?}
????}))
????
//插入一個新的file
????var?file?=?document.createElement("input");
????file.name?
=?this.FileName;?file.type?=?"file";?file.onchange?=?Bind(this,?function(){?this.Check(file);?this.Ini();?});
????
this.Folder.appendChild(file);
????
//執行附加程序
????this.onIni();
??},
??
//檢測file對象
??Check:?function(file)?{
????
//檢測變量
????var?bCheck?=?true;
????
//空值、文件數限制、后綴名、相同文件檢測
????if(!file.value){
????????bCheck?
=?false;?this.onEmpty();
????}?
else?if(this.Limit?&&?this.Files.length?>=?this.Limit){
????????bCheck?
=?false;?this.onLimite();
????}?
else?if(!!this.ExtIn.length?&&?!RegExp("\.("?+?this.ExtIn.join("|")?+?")$",?"i").test(file.value)){
????????
//檢測是否允許后綴名
????????bCheck?=?false;?this.onNotExtIn();
????}?
else?if(!!this.ExtOut.length?&&?RegExp("\.("?+?this.ExtOut.join("|")?+?")$",?"i").test(file.value))?{
????????
//檢測是否禁止后綴名
????????bCheck?=?false;?this.onExtOut();
????}?
else?if(!!this.Distinct)?{
????????Each(
this.Files,?function(o){?if(o.value?==?file.value){?bCheck?=?false;?}?})
????????
if(!bCheck){?this.onSame();?}
????}
????
//沒有通過檢測
????!bCheck?&&?this.onFail(file);
??},
??
//刪除指定file
??Delete:?function(file)?{
????
//移除指定file
????this.Folder.removeChild(file);?this.Ini();
??},
??
//刪除全部file
??Clear:?function()?{
????
//清空文件空間
????Each(this.Files,?Bind(this,?function(o){?this.Folder.removeChild(o);?}));?this.Ini();
??}
}

測試代碼

Code
var?fu?=?new?FileUpload("uploadForm",?"idFile",?{?Limit:?3,?ExtIn:?["jpg",?"gif"],
????onIniFile:?
function(file){?file.value???file.style.display?=?"none"?:?this.Folder.removeChild(file);?},
????onEmpty:?
function(){?alert("請選擇一個文件");?},
????onLimite:?
function(){?alert("超過上傳限制");?},
????onSame:?
function(){?alert("已經有相同文件");?},
????onNotExtIn:????
function(){?alert("只允許上傳"?+?this.ExtIn.join("")?+?"文件");?},
????onFail:?
function(file){?this.Folder.removeChild(file);?},
????onIni:?
function(){
????????
//顯示文件列表
????????var?arrRows?=?[];
????????
if(this.Files.length){
????????????
var?oThis?=?this;
????????????Each(
this.Files,?function(o){
????????????????
var?a?=?document.createElement("a");?a.innerHTML?=?"取消";?a.href?=?"javascript:void(0);";
????????????????a.onclick?
=?function(){?oThis.Delete(o);?return?false;?};
????????????????arrRows.push([o.value,?a]);
????????????});
????????}?
else?{?arrRows.push(["<font?color='gray'>沒有添加文件</font>",?"&nbsp;"]);?}
????????AddList(arrRows);
????????
//設置按鈕
????????$("idBtnupload").disabled?=?$("idBtndel").disabled?=?this.Files.length?<=?0;
????}
});

$(
"idBtnupload").onclick?=?function(){
????
//顯示文件列表
????var?arrRows?=?[];
????Each(fu.Files,?
function(o){?arrRows.push([o.value,?"&nbsp;"]);?});
????AddList(arrRows);
????
????fu.Folder.style.display?
=?"none";
????$(
"idProcess").style.display?=?"";
????$(
"idMsg").innerHTML?=?"正在添加文件到您的網盤中,請稍候……<br?/>有可能因為網絡問題,出現程序長時間無響應,請點擊“<a?href='?'><font?color='red'>取消</font></a>”重新上傳文件";
????
????fu.Form.submit();
}

//用來添加文件列表的函數
function?AddList(rows){
????
//根據數組來添加列表
????var?FileList?=?$("idFileList"),?oFragment?=?document.createDocumentFragment();
????
//用文檔碎片保存列表
????Each(rows,?function(cells){
????????
var?row?=?document.createElement("tr");
????????Each(cells,?
function(o){
????????????
var?cell?=?document.createElement("td");
????????????
if(typeof?o?==?"string"){?cell.innerHTML?=?o;?}else{?cell.appendChild(o);?}
????????????row.appendChild(cell);
????????});
????????oFragment.appendChild(row);
????})
????
//ie的table不支持innerHTML所以這樣清空table
????while(FileList.hasChildNodes()){?FileList.removeChild(FileList.firstChild);?}
????FileList.appendChild(oFragment);
}


$(
"idLimit").innerHTML?=?fu.Limit;

$(
"idExt").innerHTML?=?fu.ExtIn.join("");

$(
"idBtndel").onclick?=?function(){?fu.Clear();?}

//在后臺通過window.parent來訪問主頁面的函數
function?Finish(msg){?alert(msg);?location.href?=?location.href;?}



【asp版本補充】

由于很多人問我asp版本的后臺該如何寫,所以決定寫一個給大家。
這里我用了化境HTTP上傳程序2.1版(應該是最新版了)的無組件上傳類,但用的時候發現幾個問題(不知是我不會用還是asp本身的問題):
1,當file控件的name是空時,后臺會找不到文件;
2,文件名比較短時(例如我用"f"),后臺也找不到文件;
3,當有多個file控件,如果使用相同的name,后臺只會保存一個文件;
4,我在上傳文件后輸出的中文是亂碼(有時又正常)。

針對前3條,我加了一個RanName屬性,設為true的話會自動生成隨機的file控件名,對于第4條,我發現如果字是直接寫在文檔上就不會亂碼,所以我這里把輸出的文字都直接寫在文檔上沒有用變量。如果有兄弟知道怎么解決這些問題記得告訴我哦。


下載完整測試代碼(.net)

下載完整測試代碼(asp)

感謝由csdn網友mengshan1986提供的php和jsp版:
下載完整測試代碼(php)
下載完整測試代碼(jsp)

ps:請注意程序中的文件保存路徑,很多人的錯誤都是沒有設置好文件保存路徑。

轉載于:https://www.cnblogs.com/scgw/archive/2008/11/17/1334789.html

總結

以上是生活随笔為你收集整理的[转]仿163网盘无刷新文件上传系统的全部內容,希望文章能夠幫你解決所遇到的問題。

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

91精品无人成人www | 欧美精品久久久久久久免费 | 国产精品久久久久久久久久不蜜月 | 天天操天天干天天爱 | 国产精品中文字幕在线播放 | 亚洲国产美女久久久久 | 毛片网在线观看 | 国产精华国产精品 | 99热最新精品 | 欧美色图亚洲图片 | 天天躁日日躁狠狠躁av中文 | 久草视频在线新免费 | 在线观看精品国产 | 狠狠干婷婷色 | 色综合久久久久久久 | 伊人狠狠操 | 99热99re6国产在线播放 | 国产高清第一页 | 久久精品久久精品久久精品 | 97在线视频免费看 | 国产免码va在线观看免费 | 黄色成人免费电影 | 91免费看黄 | 国产精品成人在线 | 精品国产成人在线影院 | 91久久国产自产拍夜夜嗨 | 五月天亚洲激情 | 一区二区精品视频 | a黄在线观看 | 国产精品理论片在线观看 | 国产一区二区在线免费播放 | 国产一级久久 | 99精品视频在线看 | 久久久久久久久国产 | 国产视频精选在线 | 久久在线电影 | 在线播放国产精品 | 成年人电影毛片 | 亚洲精品激情 | 国产探花 | 日本一区二区免费在线观看 | 亚洲国产精品女人久久久 | 日本三级中文字幕在线观看 | 91porny九色91啦中文 | 日韩a级免费视频 | 麻豆传媒一区二区 | 国产91aaa| a级片久久久 | 亚洲国产精品va在线看黑人动漫 | 伊人黄| 日日夜夜免费精品视频 | 久久99精品久久久久久久久久久久 | 一区二区三区www | 久久久免费观看 | 嫩草av在线 | 精品国产乱码 | 中文字幕91| 久久精品久久99精品久久 | 亚洲理论片在线观看 | 91精品第一页 | 日韩精品中文字幕久久臀 | 在线免费观看羞羞视频 | 久久试看 | 国产精品免费在线观看视频 | 九九爱免费视频在线观看 | 婷婷在线免费视频 | 国产免费精彩视频 | 国产精品毛片一区二区在线 | 中文字幕乱码日本亚洲一区二区 | 五月婷婷丁香激情 | 免费色av| 黄色小说网站在线 | 国产69熟 | 一级性视频 | 丁香综合av | 国产免费不卡av | 色99中文字幕 | 国产精品久久久久久久午夜 | 亚洲免费精品视频 | 午夜久操 | 99精品系列 | 999久久久欧美日韩黑人 | 国产高清在线a视频大全 | 日韩乱色精品一区二区 | 99成人免费视频 | 手机在线永久免费观看av片 | 91av视频网 | 揉bbb玩bbb少妇bbb | 日韩av电影中文字幕在线观看 | 99免费在线观看视频 | 日韩欧美电影网 | 精品久久久久国产 | 91成品视频 | 蜜臀av在线一区二区三区 | 亚洲另类视频在线观看 | 中文字幕在线播放第一页 | 日韩免费看的电影 | 免费视频久久久 | 亚洲精品福利在线观看 | 69av视频在线 | 中文字幕在线一区观看 | 91最新视频在线观看 | 四虎影视8848aamm | 日韩a级黄色片 | 欧美日韩久| 天天操天天弄 | 国产99久久久国产精品免费二区 | 国产一级91 | 欧美一级免费片 | 日韩爱爱片 | 国产91精品一区二区麻豆网站 | 国产成人精品午夜在线播放 | 麻豆视频免费在线 | 亚洲黄色av | 美女搞黄国产视频网站 | 婷婷中文字幕 | 国产成人黄色网址 | 日韩精品一区二区久久 | 国精产品999国精产品视频 | 成人在线观看av | 在线免费观看国产精品 | 可以免费看av | 欧美在线久久 | 久久99九九99精品 | 国产香蕉97碰碰久久人人 | 午夜国产福利在线观看 | 日韩,中文字幕 | 在线观看不卡视频 | 亚洲天堂网站 | 国产手机视频精品 | 色婷婷狠狠干 | 人人超碰人人 | 亚洲动漫在线观看 | 国产成人久久av977小说 | 三级av小说 | 伊人干综合 | 亚洲人成在线观看 | 久久久国产精品一区二区中文 | 少妇视频一区 | 国产视频在线观看免费 | 91丨九色丨蝌蚪丨老版 | 人人射人人 | 色视频网站在线观看一=区 a视频免费在线观看 | 色www免费视频 | 免费在线观看毛片网站 | 中文字幕在线播放一区 | 免费色视频网站 | 久久这里只有精品视频99 | 免费看日韩片 | 五月精品 | 成人午夜影院 | 欧美婷婷综合 | 欧美一二三区播放 | 国产中文字幕在线免费观看 | 久久久亚洲麻豆日韩精品一区三区 | 天天干天天摸天天操 | 亚州国产精品 | 国产精品毛片一区二区在线看 | 在线电影 一区 | 日韩极品在线 | 国产成人精品久久久 | 国产一区二区免费 | 国产伦理一区 | 91激情视频在线观看 | 日韩三级中文字幕 | 久久伊人精品天天 | 午夜精品一区二区三区视频免费看 | 一区二区在线不卡 | 免费色视频 | 国产日韩精品一区二区三区 | 91福利视频在线 | 天天爽天天爽天天爽 | 91香蕉视频黄色 | 日本在线h | 黄色大片日本免费大片 | 精品91在线 | 亚洲精品免费播放 | 亚洲一区网站 | 免费黄色在线网站 | 亚洲永久精品视频 | 国产区在线视频 | 欧美日韩中 | 久久亚洲福利视频 | 国产成人一区二区三区久久精品 | 视色网站 | 欧美国产日韩激情 | 亚洲 欧美 变态 国产 另类 | av网站免费在线 | 探花国产在线 | 91超国产 | 香蕉视频在线观看免费 | 免费国产在线观看 | 亚洲天堂va | 色多多污污在线观看 | 日韩一级黄色大片 | 九九天堂 | 99r在线 | 国产 日韩 在线 亚洲 字幕 中文 | 久久精品99久久久久久 | 久久精品99国产精品日本 | 91爱爱免费观看 | www黄色 | 日韩精品在线观看av | 婷婷电影在线观看 | 中文字幕中文字幕中文字幕 | 日韩黄色免费在线观看 | 中文字幕一区二区在线观看 | 亚洲在线不卡 | 国产日韩欧美视频在线观看 | 狠狠ri| 国产成人精品一二三区 | 97视频网站 | 成人蜜桃网 | 久久久久久久久久久久久9999 | 国产精品亚州 | 国产精品午夜久久 | 久久99婷婷 | 亚洲精品资源 | 国产精品毛片一区二区 | 亚洲三级黄色 | 在线免费高清 | 久久亚洲成人网 | 日本中文字幕网 | 在线观看精品视频 | 欧美男女爱爱视频 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 免费看国产a | 欧美一区成人 | 91亚洲精品国偷拍 | 欧美日韩伦理在线 | 99精品国产在热久久下载 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 日韩午夜在线观看 | 国产一级三级 | 亚洲精品福利视频 | 亚洲影视九九影院在线观看 | 狠狠色丁香婷婷 | 免费h漫在线观看 | 婷婷在线免费视频 | 免费99精品国产自在在线 | 日韩欧美69 | 91精选在线 | 成人一区二区三区中文字幕 | 国产精品不卡在线观看 | 高清不卡毛片 | 麻花豆传媒mv在线观看网站 | 国产一区91| 成人影音av| 99精品一区 | 狠狠的干 | 色噜噜狠狠色综合中国 | 国产在线探花 | 久久婷亚洲五月一区天天躁 | 久草网在线观看 | 一级片视频在线 | 国产亚洲精品久久久久动 | www黄色av| 国内精品免费久久影院 | 成人在线视频免费看 | 成人国产一区二区 | 狠狠色丁香久久婷婷综合_中 | 免费电影一区二区三区 | 麻豆影视网 | 欧美91av| 美女久久网站 | 96精品视频 | 久久久久国产精品厨房 | 久久与婷婷 | 久久艹在线观看 | 天天操天天操天天爽 | 91av视屏 | 久久成人午夜 | 人人爽夜夜爽 | 99在线免费观看视频 | 青草视频网 | 中文字幕乱码一区二区 | 在线看v片成人 | 国产成人精品午夜在线播放 | 天天色宗合 | 成人a在线| 中文字幕精品三级久久久 | 色婷婷六月天 | 国产亚洲精品bv在线观看 | 中文在线字幕观看电影 | 久久久精品久久日韩一区综合 | 国产精品成人一区 | 久久精品香蕉 | 在线观看网站av | 国产一区二区三区高清播放 | 91国内在线视频 | 日本精品免费看 | 久草免费福利在线观看 | 中文字幕在线字幕中文 | 国产精品一区二区中文字幕 | 精品欧美一区二区在线观看 | 天天操天天操天天干 | 激情婷婷丁香 | 韩国av在线播放 | 久久久久综合精品福利啪啪 | 在线观看亚洲精品 | 日韩国产精品久久久久久亚洲 | 国产亚洲欧美在线视频 | 久久躁日日躁aaaaxxxx | 在线观看www91 | 91在线中文字幕 | 国产高清视频免费观看 | 亚洲精品免费在线播放 | 国产精品女同一区二区三区久久夜 | 精品国产伦一区二区三区观看体验 | 91久久电影 | 精品人人人 | 99精品久久久久久久久久综合 | 欧美激情第一页xxx 午夜性福利 | 久久热首页 | 激情偷乱人伦小说视频在线观看 | 国产精品夜夜夜一区二区三区尤 | 欧美日韩在线观看一区二区 | 日韩电影精品 | 久久成人一区二区 | 黄色软件视频大全免费下载 | 五月综合在线观看 | 欧美日韩在线视频免费 | 亚洲综合视频在线观看 | 99在线观看精品 | 久久久久国产精品一区二区 | 免费在线观看av的网站 | 奇米影视四色8888 | 久久久久久久久久久久久9999 | 久久伊人操 | 日韩av电影网站在线观看 | 日韩欧美在线免费观看 | 日韩在线视频免费播放 | 日韩欧美电影在线 | 天堂网一区二区三区 | 久久激情综合 | 久久精品影视 | 怡红院av久久久久久久 | 国产黄色一级片在线 | 日本精品久久久一区二区三区 | 国产一级在线观看 | 国产日韩精品在线观看 | 亚洲精品色 | 91看片看淫黄大片 | 人人插超碰 | 免费污片 | 亚洲第一区精品 | 国产精品一区二区久久精品爱微奶 | 日韩极品视频在线观看 | 国产日韩欧美网站 | 欧美国产日韩中文 | 免费在线播放视频 | 欧美日韩观看 | 狠狠激情中文字幕 | 精品亚洲欧美一区 | 国产精品嫩草55av | 五月天久久久久 | 国产69精品久久99不卡的观看体验 | 亚洲最新精品 | 韩国av一区二区 | 久草五月 | 亚洲久在线 | 久久久久久久久久久网 | 青青河边草免费直播 | 视频国产精品 | 久久欧美视频 | 不卡电影免费在线播放一区 | 99久久电影 | 久久不见久久见免费影院 | 久久影视一区 | 手机av永久免费 | 97国产大学生情侣酒店的特点 | 在线观看国产高清视频 | 在线观看精品视频 | 久久久久久久久久久免费av | 免费日韩电影 | 少妇性bbb搡bbb爽爽爽欧美 | 免费一级片在线 | 国产在线1区 | 国产大尺度视频 | 久久久久女人精品毛片九一 | 成人久久18免费网站 | 91麻豆精品 | 国产在线久草 | 色干综合 | 亚洲网站在线看 | 999国内精品永久免费视频 | 久久激情电影 | 狠狠干狠狠色 | 国产999精品久久久影片官网 | 91麻豆精品国产91久久久久久久久 | 免费高清在线观看成人 | 91久久人澡人人添人人爽欧美 | 国产高清日韩欧美 | www.成人久久 | 久久99久久99精品 | 国产999在线观看 | 在线观看色视频 | 国产精品观看在线亚洲人成网 | 久久99精品波多结衣一区 | 国产精品欧美久久久久久 | 永久免费观看视频 | 中文字幕丝袜一区二区 | 久久在视频 | 国产黄在线免费观看 | 大胆欧美gogo免费视频一二区 | 久久系列| 狠狠搞,com | 国产精品久久久久婷婷 | 亚洲成人午夜在线 | 在线观看国产www | 91久久国产综合精品女同国语 | 在线免费黄色毛片 | www黄免费 | 黄色的视频网站 | 久久午夜精品 | 在线观看麻豆av | www在线免费观看 | 国产免费视频在线 | 成人国产精品一区二区 | 这里有精品在线视频 | 91香蕉久久 | 黄色一二级片 | 在线视频久久 | 国产91影院| 91精品国产综合久久福利 | 99草在线视频 | 99视频精品免费视频 | 在线观看视频福利 | 国产中文字幕视频在线观看 | 国产区精品在线观看 | 久久综合色综合88 | 中文字幕黄色网址 | 91超碰免费在线 | 免费国产一区二区 | 黄色资源在线观看 | 欧美日韩久久久 | 超碰在线最新网址 | 久久99亚洲精品久久久久 | 成人免费在线观看入口 | 久久国产精品精品国产色婷婷 | 男女男视频| 五月天狠狠操 | 免费观看国产视频 | 国产精品99久久久久久宅男 | 五月婷久 | 国产一级片观看 | 波多野结衣一区二区三区中文字幕 | 久久精品99久久 | 日产乱码一二三区别在线 | 国产在线播放一区 | 操操日 | 国产高清亚洲 | 九九热只有这里有精品 | 91成人精品在线 | 西西人体4444www高清视频 | 日韩欧美国产激情在线播放 | 99久久99久久精品国产片果冰 | 日韩久久一区二区 | 麻豆一二 | 日韩av在线看 | 日韩精品一区在线播放 | 国产高清视频免费最新在线 | 婷婷色伊人 | av黄色免费网站 | 99精品一区 | 婷婷丁香综合 | 91av视频| 国产高清精品在线观看 | 亚洲国产合集 | 日韩二区在线 | 最新日韩在线 | 亚洲天堂免费视频 | 成片人卡1卡2卡3手机免费看 | 国产亚洲视频系列 | 中文 一区二区 | 中文字幕av全部资源www中文字幕在线观看 | 亚洲欧美国产视频 | 国产 一区二区三区 在线 | 99精品视频免费全部在线 | 久久香蕉电影 | 毛片基地黄久久久久久天堂 | 亚洲成av人片在线观看www | 久久精品2 | 久久久精品亚洲 | 人人搞人人搞 | 99在线国产 | 国产成人久久 | 97超碰色偷偷 | 国产亚洲成av片在线观看 | 国产精品福利在线播放 | 日韩av偷拍| 啪啪av在线 | 夜夜躁日日躁狠狠久久av | 日韩精品久久久久久 | 69性欧美| 狠狠色丁婷婷日日 | 日本中文字幕在线观看 | 五月婷婷综合在线观看 | 欧美性做爰猛烈叫床潮 | 国产免费影院 | 色综合久久88色综合天天6 | 久久免费黄色网址 | 黄色视屏免费在线观看 | 韩国在线视频一区 | 婷婷中文字幕 | 午夜久久福利 | 日韩欧美一区二区在线 | 久久久久久久久久久免费av | 欧美日韩一区二区免费在线观看 | 国产精品大片免费观看 | 国产精品夜夜夜一区二区三区尤 | 日韩欧美高清 | 天天色天天射天天干 | av福利电影 | 成人三级网站在线观看 | 视频一区二区免费 | 日韩一区二区在线免费观看 | 最新国产精品久久精品 | 97超碰人人澡人人爱 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 国产一区视频在线播放 | 狠狠狠色丁香婷婷综合久久88 | 99视频精品免费视频 | 国产亚洲va综合人人澡精品 | 国产一区二区三区在线 | 天天射天天射天天 | 天天在线视频色 | 免费看一级特黄a大片 | 国产精品女主播一区二区三区 | 亚洲精品一区二区三区新线路 | 91在线国内视频 | 91香蕉嫩草| 天天插天天射 | 免费中文字幕 | 婷婷精品在线视频 | 国产中文字幕在线视频 | 黄色小视频在线观看免费 | 天天射综合 | 欧美在线99 | 日韩免费中文 | 国产精品自产拍 | av免费福利 | 久久久免费高清视频 | 中文字幕91在线 | 久久综合亚洲鲁鲁五月久久 | 久久毛片网 | 一级淫片在线观看 | 香蕉网站在线观看 | 亚洲九九九在线观看 | 久久免费视频在线观看30 | 一级久久久 | 精品免费久久久久 | 日本三级中文字幕在线观看 | 国产精品久久久久久久久久久久午夜 | 狠狠干2018 | 激情久久影院 | 久久国产精品99国产 | 国产视频在线一区二区 | 日韩不卡高清 | 在线视频欧美亚洲 | 日韩国产在线观看 | 91九色网址| 国产一级免费在线观看 | 精品视频一区在线 | 国产视频每日更新 | 97在线免费观看 | 国产又粗又猛又爽 | 亚洲一区二区三区精品在线观看 | 中文字幕在线免费观看 | 日韩黄色中文字幕 | 午夜视频在线观看一区二区三区 | 国产高清视频免费观看 | 亚洲国产午夜精品 | 亚洲另类xxxx | 九九色网 | 成人黄色电影在线播放 | 最新日本中文字幕 | 欧美日韩中文国产 | av电影在线免费 | 国产剧在线观看片 | 在线观看成人网 | 日本在线观看中文字幕 | 最新中文字幕 | 97精品国产97久久久久久久久久久久 | 午夜黄色大片 | 天天干天天干天天干 | 久久精品99| 成人av动漫在线 | 91精品久久久久久久久 | 久久午夜网| 日韩高清片 | 在线色视频小说 | 99在线视频观看 | www.狠狠 | 国产91免费在线观看 | 国产黄在线 | 美女免费视频一区二区 | 性色va| 黄色一级大片在线免费看产 | 亚洲专区视频在线观看 | 日韩欧美国产成人 | 日韩三级视频在线观看 | 国产在线精品区 | 精品免费一区二区三区 | 国产美女精品人人做人人爽 | 国产另类xxxxhd高清 | 欧美日韩中文字幕在线视频 | 久久久久久久久久久久久久电影 | 九九久久影院 | 国产精品高清在线 | 久草在在线视频 | 久久久精品网站 | 国产毛片在线 | 国产成人综合在线观看 | 香蕉在线观看 | 久久爱影视i | 欧美激情综合色综合啪啪五月 | 色999视频| 亚洲一二区视频 | 麻豆系列在线观看 | 日韩精品久久久久久久电影99爱 | 久久99精品久久久久久三级 | 国产精品久久婷婷六月丁香 | 免费一区在线 | 国产字幕在线观看 | 久久国产欧美日韩精品 | 久久在线影院 | 韩日三级av | 97碰在线视频 | 日韩精品一区二区三区免费观看 | 久久久久日本精品一区二区三区 | 免费看黄色大全 | 欧美精品久久久久久久久老牛影院 | 国产一区二区在线播放视频 | 精品国产午夜 | 激情视频久久 | 国产精品久久久久久久久久久久冷 | 在线观看一区视频 | 婷婷爱五月天 | 亚洲精品白浆高清久久久久久 | 五月天狠狠操 | 久久免费在线观看 | 日韩欧美aaa| 日韩激情免费视频 | 精品国产观看 | 中文字幕黄色网 | 深爱激情站 | 九九热精品国产 | 91人网站 | 在线视频中文字幕一区 | 99这里有精品| 欧洲一区二区在线观看 | 精品国产一区二区三区在线观看 | 一区二区毛片 | 日韩在线精品 | 欧洲精品视频一区 | 久久特级毛片 | 一本一道久久a久久精品蜜桃 | 91成品视频| 天天·日日日干 | 国产精品综合在线观看 | 人人澡超碰碰97碰碰碰软件 | 精品视频在线视频 | 男女视频国产 | av电影中文 | 亚洲综合涩 | 国产精品毛片久久久久久 | 国产91精品在线播放 | 国产色a在线观看 | 91网免费看| 五月婷婷色播 | 91爱爱网址 | 天堂av网在线 | 日本久久不卡视频 | 国产91影院| 日本黄色片一区二区 | 久草视频网 | 日韩美女免费线视频 | 91视频91蝌蚪 | 久久久精品网站 | 一本一道久久a久久综合蜜桃 | 1000部国产精品成人观看 | 久久成人综合视频 | 中文字幕影片免费在线观看 | 国产在线观看,日本 | 伊人影院99 | 国产在线 一区二区三区 | 国产在线看一区 | 国产精品99久久免费黑人 | 久久的色 | 五月天婷亚洲天综合网鲁鲁鲁 | 国产一级免费电影 | 精品在线视频一区二区三区 | 91最新网址在线观看 | 精品视频区 | www.久久精品视频 | 久久精品一区八戒影视 | 午夜久久精品 | 久久久精品二区 | 在线观看国产一区二区 | 亚洲视频一 | 久久久久亚洲国产精品 | 精品国产欧美 | 中文字幕精品一区久久久久 | 人人干人人超 | 99久久精品无免国产免费 | 最新av电影网址 | 一区二区三区四区在线免费观看 | 国产精品欧美精品 | 久久国产经典 | 日韩久久视频 | 亚洲成a人片77777潘金莲 | 久久国产一二区 | 欧美一级大片在线观看 | 免费观看v片在线观看 | 中文字幕日本特黄aa毛片 | 亚洲日本在线视频观看 | 久久怡红院 | 欧美日韩午夜爽爽 | 天天色天天上天天操 | 91毛片视频 | 91桃色国产在线播放 | 婷婷在线观看视频 | 中文亚洲欧美日韩 | 在线观看中文字幕dvd播放 | 国产成人精品亚洲精品 | 日韩三级一区 | 欧美综合在线视频 | 欧美精品在线一区 | 成人av网站在线播放 | 国产精品女同一区二区三区久久夜 | 天天操天天玩 | 色七七亚洲影院 | 天天色棕合合合合合合 | 91网站观看 | 五月天堂色 | 免费精品视频 | 国产日韩欧美在线影视 | 久久色在线播放 | www.天天射 | 97超碰中文字幕 | 在线观看岛国片 | 特黄免费av | 欧美精彩视频在线观看 | 久久99日韩 | 在线电影 一区 | 91精品国产高清 | 国产精品国产三级国产专区53 | 人人插人人费 | 在线亚洲天堂网 | 亚洲欧美怡红院 | 香蕉网在线播放 | 国产色婷婷精品综合在线手机播放 | 九九久久婷婷 | 97免费在线观看视频 | 色天天综合网 | 麻豆系列在线观看 | 国产黄色一级大片 | 日韩成人av在线 | 国产免费二区 | 91香蕉视频在线下载 | 国产精品av一区二区 | 深爱激情五月网 | 中文字幕永久在线 | 超碰人在线 | 久久久激情视频 | 国产老太婆免费交性大片 | 免费看高清毛片 | 久久激情日本aⅴ | 色婷婷久久久综合中文字幕 | 亚洲第一成网站 | 美女黄久久 | 国产精品毛片一区视频播不卡 | 亚洲传媒在线 | 日韩a在线| 99热精品国产一区二区在线观看 | 黄色亚洲精品 | 国产在线播放一区二区三区 | 欧美性色黄大片在线观看 | 久久婷婷一区 | 高清有码中文字幕 | 中文字幕在线字幕中文 | 国产裸体视频bbbbb | 中文av一区二区 | 日日夜夜亚洲 | 久久成人免费视频 | 亚洲黄色高清 | 香蕉在线影院 | 国产中文字幕在线观看 | 欧亚日韩精品一区二区在线 | 97精品视频在线 | 日韩欧美精品在线观看 | 激情视频综合网 | 日日干美女 | 亚洲精选视频在线 | 在线观看亚洲精品视频 | 久久最新网址 | 韩国av一区二区三区 | 一区二区伦理电影 | 久久精品在线免费观看 | 国产一区在线视频播放 | av一本久道久久波多野结衣 | 国产原创91 | 亚洲人成精品久久久久 | 欧美日韩国产在线一区 | 国产91精品看黄网站 | 在线不卡中文字幕播放 | 午夜视频不卡 | 久久久久免费看 | 91热精品 | 日韩欧美有码在线 | 日韩精品免费一线在线观看 | 蜜臀av性久久久久av蜜臀妖精 | 成人黄在线观看 | 天天干天天色2020 | 麻花豆传媒一二三产区 | 91在线视频导航 | 成人免费视频在线观看 | 国产精品综合久久久 | 国产精品免费在线观看视频 | 久久国产精彩视频 | 久久综合精品国产一区二区三区 | 成人啊 v| 色婷久久| 亚洲乱码中文字幕综合 | 成人av高清在线 | 日韩毛片久久久 | 国产专区欧美专区 | 免费视频一二三区 | 天天撸夜夜操 | 中中文字幕av| 一本一道波多野毛片中文在线 | 国产精品18久久久久vr手机版特色 | 精品国产一区二区三区免费 | 韩国av一区二区三区 | www.色爱| 日p在线观看 | 亚洲国内精品视频 | 久久久久久国产一区二区三区 | av网站大全免费 | 麻豆 videos | 国产黄在线观看 | 久久久久久久久久久久99 | www.久久免费 | 69精品人人人人 | 国产精品淫 | 免费观看黄色av | 久草精品在线 | 午夜12点| 99精品免费在线观看 | 亚洲国产欧美在线人成大黄瓜 | 亚洲精品综合在线 | 国产精品黑丝在线观看 | 99热在线国产精品 | 国产精品专区在线观看 | 国产三级av在线 | 日韩免费一区二区三区 | 91久久国产露脸精品国产闺蜜 | 精品一区二区三区香蕉蜜桃 | 国内精品视频在线播放 | 亚洲男人天堂2018 | 国产一区二区精品91 | 欧美性生活小视频 | 美女视频网 | 国产直播av | 精品一区二区三区久久 | 国产中文字幕网 | 亚洲视频在线免费观看 | 欧美一级日韩三级 | 久久亚洲免费视频 | 激情电影影院 | 91精品国产自产在线观看 | 久久久久| 久久国产精品二国产精品中国洋人 | 97超碰人人模人人人爽人人爱 | 久章操 | 日韩精品免费在线 | 黄色毛片观看 | 欧美国产91 | 天天爽天天爽天天爽 | 日本aaaa级毛片在线看 | aa级黄色大片 | 亚洲aⅴ一区二区三区 | 波多野结衣视频一区二区三区 | 国产在线传媒 | 日本性久久 | 成人免费视频在线观看 | 婷婷久久综合九色综合 | 国产精品二区三区 | 国产精品你懂的在线观看 | 国产黄 | 亚洲成人高清在线 | 久草视频观看 | 中国一级片在线观看 | 欧美日韩精品影院 | 亚洲精品看片 | 亚洲日本黄色 | 一区二区三区国产欧美 | 免费国产在线精品 | 国产精品夜夜夜一区二区三区尤 | 人人爽人人澡人人添人人人人 | www.777奇米| 高清av网 | 一区二区精品视频 | 色片网站在线观看 | 婷婷五月情 | 草久中文字幕 | 国产一级特黄电影 | 午夜色场 | 综合天堂av久久久久久久 | 欧美日韩精 | 久草在线这里只有精品 | 黄av免费在线观看 | 久久久久久久久久久久久9999 | 日韩欧美电影网 | 亚洲精品免费观看 | 日本久久中文 | 亚洲春色成人 | 中文字幕婷婷 | 午夜av色 | 日韩精品无码一区二区三区 | 国产亚洲一区二区在线观看 | 欧美少妇xxxxxx | 国产在线视频在线观看 | 免费在线日韩 | 中文字幕在线观看第一页 | 日韩资源在线观看 | 97色视频在线| 国产小视频在线观看 | 久草视频视频在线播放 | 久久精品一区八戒影视 | 日本mv大片欧洲mv大片 | 最近更新好看的中文字幕 | 日韩精品免费在线观看视频 | 国产精品美女免费视频 | 99久久精品免费看国产免费软件 | 欧美一区二区三区在线 | 成人av免费在线看 | 日日夜精品 | 免费亚洲黄色 | 国产精品99久久久久人中文网介绍 | 国产免费观看高清完整版 | 国产不卡一二三区 | av在线最新| 欧美日韩综合在线 | 日本公妇色中文字幕 | 一区二区三区久久 | 国产精品久久久久aaaa九色 | 国产福利精品一区二区 | 色av网站| 在线看一级片 | 国产亚洲精品v | 开心丁香婷婷深爱五月 | 中文资源在线播放 | 在线观看日本韩国电影 | 福利视频一区二区 | 精品久久久久久久久中文字幕 | 99热国产在线 | 日韩av快播电影网 | 国产日韩欧美中文 | 久久亚洲婷婷 | 午夜视频在线观看一区二区三区 | 免费网站污 | 91网站免费观看 | 一级黄视频 | 亚洲 精品在线视频 | 国产麻豆精品在线观看 | 亚州精品成人 | 激情综合婷婷 | 狠狠色噜噜狠狠狠狠2022 | 久久99久久99精品免费看小说 | 一区二区不卡在线观看 | 久久久穴 | 一二区精品| 99久久影视 | 日韩欧美一级二级 | 色偷偷888欧美精品久久久 | 免费网站黄 | 97精品国产97久久久久久春色 | 综合色狠狠 | 91香蕉视频好色先生 | 国产亚洲精品成人av久久影院 | 一区二区三区不卡在线 | www.xxxx欧美 | 中文字幕在线观看第一页 | 五月天com | 美女黄频 | 亚洲日韩中文字幕在线播放 | 成人在线超碰 | 日韩免费在线看 | 国产精品久久久亚洲 | 在线 国产 日韩 | 中文字幕av全部资源www中文字幕在线观看 | 国产精品一区二区av麻豆 | 国产精品美女在线 | 国产中文字幕在线播放 | 亚洲一区美女视频在线观看免费 | www.久久久精品 |