欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Struts1.x系列教程(9):上傳任意多個文件

系統(tǒng) 2656 0
本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!

上一篇: Struts1.x系列教程(8):上傳單個文件

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="ProgId" content="Word.Document"> <meta name="Generator" content="Microsoft Word 11"> <meta name="Originator" content="Microsoft Word 11"> <link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> <!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ &#64;font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1;} &#64;font-face {font-family:""&#64;宋體"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ &#64;page {} &#64;page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]--> Struts2教程7:上傳任意多個文件

《Struts1.x系列教程(8):上傳單個文件》 中給出的例子可以看出,在 Struts1.x 中上傳單個文件是非常簡單的,但在實際應(yīng)用中,上傳文件的個數(shù)一般是不確定的,如在網(wǎng)絡(luò)硬盤中,用戶可以根據(jù)自己的需要上傳任意多個文件(當然,網(wǎng)絡(luò)硬盤一次上傳文件的數(shù)目一般也是有上限的,如 50 個,但用戶可以只上傳了 3 個文件,因此,在這種情況下,上傳文件的個數(shù)也是不確定的)。如果讀者用過“網(wǎng)易網(wǎng)盤”或其他類似的服務(wù)程序,它們的上傳文件功能基本上都是根據(jù)用戶選擇的文件多少來添加要上傳的文件(并不是一開始就在界面上放很多 <input type=’file’> 元素來讓用戶輸入上傳文件名)。為了讓讀者也可以使用 Struts 來實現(xiàn)這個功能,在本節(jié)將給出一個用 Struts 實現(xiàn)的類似“網(wǎng)易網(wǎng)盤”的上傳任意多個文件的 Web 程序。在實現(xiàn) Web 程序之前,讓我們先看看圖 1 所示的主頁面。


圖1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="ProgId" content="Word.Document"> <meta name="Generator" content="Microsoft Word 11"> <meta name="Originator" content="Microsoft Word 11"> <link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> <!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ &#64;font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1;} &#64;font-face {font-family:""&#64;宋體"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ &#64;page {} &#64;page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]-->

在本程序中,用戶通過在文本框中輸入本地文件名或使用“瀏覽”按鈕選擇要上傳的文件后,就會在界面的下方添加這個被錄入的文件名,如果錄入有誤,或是不想上傳某個文件,可以使用“刪除”功能將當前文件刪除。在確認正確錄入所有的上傳文件后,使用“上傳”按鈕開始上傳文件。

實現(xiàn)這個 Web 程序的基本步驟和 《Struts1.x系列教程(8):上傳單個文件》 一文中 所給出的例子類似,我們可按下面五步來實現(xiàn)這個 Web 程序:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ &#64;font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1;} &#64;font-face {font-family:""&#64;宋體"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ &#64;page {} &#64;page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]-->

【第 1 步】 建立上傳文件的 JSP 頁面
要想實現(xiàn)上述的功能,需要在 JavaScript 中使用 DOM 技術(shù)(關(guān)于 JavaScript DOM 技術(shù)的相關(guān)內(nèi)容已經(jīng)超出本文討論的范圍,如果讀者想了解 JavaScript DOM 技術(shù)的細節(jié)部分,請參閱其他相關(guān)技術(shù)資料)。
在<samples工程目錄>目錄中建立一個uploadMoreFile.jsp文件,代碼如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <% @pagepageEncoding = " GBK " %>
<% @tagliburi = " http://struts.apache.org/tags-html " prefix = " html " %>
< html >
< head >
< title > 上傳任意多個文件(總大小不能超過2M) </ title >
< script language ="javascript" >
// 在DOM中插入一個上傳文件列表項(div元素)和一個<inputtype="file"/>元素
function insertNextFile(obj)
{
// 獲取上傳控制個數(shù)
var childnum = document.getElementById( " files " ).getElementsByTagName( " input " ).length;
var id = childnum - 1 ;
var fullName = obj.value;
// 插入<div>元素及其子元素
var fileHtml = '';
fileHtml
+= ' < divid = " file_preview'+id+' " style = " border-bottom:1pxsolid#CCC; " > ';
fileHtml
+= ' < imgwidth = 30 height = 30 src = " images/file.gif " title = " '+fullName+' " /> ';
fileHtml
+= ' < ahref = " javascript:; " onclick = " removeFile('+id+'); " > 刪除 </ a > & nbsp; & nbsp;';
fileHtml
+= fullName.substr(fullName.lastIndexOf('\\') + 1 ) + ' </ div > ';

var fileElement = document.getElementById( " files_preview " );
fileElement.innerHTML
= fileElement.innerHTML + fileHtml;
obj.style.display
= 'none'; // 隱藏當前的<inputtype=”file”/>元素
addUploadFile(childnum); // 插入新的<inputtype=”file”/>元素
}
// 插入新的<inputtype=”file”/>元素,適合于不同的瀏覽器(包括IE、FireFox等)
function addUploadFile(index)
{
try // 用于IE瀏覽器
{
var uploadHTML = document.createElement( " <inputtype='file'id='file_ " + index +
"
'name='file[ " + index + " ]'onchange='insertNextFile(this)'/> " );
document.getElementById(
" files " ).appendChild(uploadHTML);
}
catch (e) // 用于其他瀏覽器
{
var uploadObj = document.createElement( " input " );
uploadObj.setAttribute(
" name " , " file[ " + index + " ] " );
uploadObj.setAttribute(
" onchange " , " insertNextFile(this) " );
uploadObj.setAttribute(
" type " , " file " );
uploadObj.setAttribute(
" id " , " file_ " + index);
document.getElementById(
" files " ).appendChild(uploadObj);
}
}
function removeFile(index) // 刪除當前文件的<div>和<inputtype=”file”/>元素
{
document.getElementById(
" files_preview " ).removeChild(document.getElementById( " file_preview " + index));
document.getElementById(
" files " ).removeChild(document.getElementById( " file_ " + index));
}
function showStatus(obj) // 顯示“正在上傳文件 ”提示信息
{
document.getElementById(
" status " ).style.visibility = " visible " ;
}
</ script >
</ head >
< body >
< html:form enctype ="multipart/form-data" action ="uploadMoreFile" >
< span id ="files" > <% -- 在此處插入用于上傳文件的input元素 -- %>
< input type ="file" id ="file_0" name ="file[0]" onchange ="insertNextFile(this)" />
</ span > &nbsp;&nbsp;
< html:submit value ="上傳" onclick ="showStatus(this);" />
</ html:form > < p >
< div id ="status" style ="visibility:hidden;color:Red" > 正在上傳文件 </ div > < p >
<% -- 在此處用DOM技術(shù)插入上傳文件列表項 -- %>
< div id ="files_preview" style ="width:500px;height:500px;overflow:auto" ></ div >
</ body >
</ html >

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ &#64;font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1;} &#64;font-face {font-family:""&#64;宋體"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ &#64;page {} &#64;page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]-->

uploadMoreFile.jsp 文件中使用了 JavaScript DOM 技術(shù)來控制新加入的上傳文件以及刪除不需要的上傳文件。并且在加入 <input type=”file”/> 元素時考慮了不同的瀏覽器的差異(詳見 addUploadFile )。

【第 2 步】 建立 ActionForm 的子類

<samples 工程目錄 >\src\actionform 目錄中建立一個 UploadMoreForm.java 文件,代碼如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> package actionform;
import org.apache.struts.action. * ;
import org.apache.struts.upload.FormFile;
import java.util. * ;
public class UploadMoreForm extends ActionForm
{
private List < FormFile > myFiles = new ArrayList < FormFile > (); // 用于保存不定數(shù)量的FormFile對象

public FormFilegetFile( int i) // 索引屬性
{
return myFiles.get(i);
}
public void setFile( int i,FormFilemyFile) // 索引屬性
{
if (myFile.getFileSize() > 0 ) // 只有上傳文件的字節(jié)數(shù)大于0,才上傳這個文件
{
myFiles.add(myFile);
}
}
public int getFileCount() // 獲得上傳文件的個數(shù)
{
return myFiles.size();
}
}

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ &#64;font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1;} &#64;font-face {font-family:""&#64;宋體"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ &#64;page {} &#64;page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]--> UploadMoreFile 類中使用了 List 對象來保存不定數(shù)量的 FormFile 對象。讀者也可以使用其他的集合類來保存這些 FormFile 對象。而且在 UploadMoreFile 類中使用了帶索引的屬性,詳見 getFile setFile 方法。在這兩個方法中,第一個參數(shù)是一個 int 類型的變量。要注意的是,索引屬性的 get set 方法的第一個參數(shù)必須是 int 類型的變量,否則系統(tǒng)會不認這個索引屬性。這個索引屬性用于和客戶端不定數(shù)量的 <input type=”file” /> 元素相對應(yīng),每一個索引項代表一個 <input type=”file” /> 元素上傳的文件( FormFile 對象)。

【第 3 步】 建立 Struts 動作類 (Action 的子類 )
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ &#64;font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1;} &#64;font-face {font-family:""&#64;宋體"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ &#64;page {} &#64;page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]-->

由于在 《Struts1.x系列教程(8):上傳單個文件》 一文 的例子中 UploadAction 類中已經(jīng)有了一個 saveFile 方法用于保存單個上傳文件,因此,處理多個上傳文件的 Struts 動作類可以從 UploadAction 類繼承。在 <samples 工程目錄 >\src\action 目錄中建立一個 UploadMoreAction.java 文件,代碼如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> package action;

import javax.servlet.http. * ;
import org.apache.struts.action. * ;
import org.apache.struts.upload.FormFile;
import java.io. * ;
import actionform. * ;

public class UploadMoreAction extends UploadAction
{
public ActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
{
UploadMoreFormumForm
= (UploadMoreForm)form;
PrintWriterout
= null ;
int count = 0 ;
try
{
response.setCharacterEncoding(
" GBK " );
out
= response.getWriter();
count
= umForm.getFileCount(); // 獲得上傳文件的總數(shù)
for ( int i = 0 ;i < count;i ++ )
{
saveFile(umForm.getFile(i));
// 開始保存每一個上傳文件
}
out.println(
" 成功上傳 " + String.valueOf(count) + " 個文件. " );
}
catch (Exceptione)
{
out.println(e.getMessage());
}
return null ;
}
}

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ &#64;font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1;} &#64;font-face {font-family:""&#64;宋體"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ &#64;page {} &#64;page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]--> 【第 4 步】 配置 struts-config.xml

在這一步來配置一下在第2步和第3步分別建立的ActionForm和Action的子類。打開struts-config.xml文件,在<form-beans>元素中加入如下的子元素:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> < form-bean name ="uploadMoreForm" type ="actionform.UploadMoreForm" />

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 在<action-mappings>元素中加入如下的子元素:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> < action name ="uploadMoreForm" path ="/uploadMoreFile" scope ="request" type ="action.UploadMoreAction" />

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ &#64;font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1;} &#64;font-face {font-family:""&#64;宋體"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ &#64;page {} &#64;page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --></style> 【第 5 步】 復制 gif 圖片

本例中使用了一個 gif 圖,在 Web 根目錄中建立一個 images 目錄,并復制一個 file.gif 文件( 30*30 )到這個目錄(讀者可以使用自己喜歡的任何 gif 圖片)。
由于在 《Struts1.x系列教程(8):上傳單個文件》 一文 的例子中已經(jīng)設(shè)置了上傳文件的保存路徑和上傳文件的大小限制,因此,在本例中仍然使用這一設(shè)置。但要注意的是,在上傳多個文件時,最大上傳文件尺寸指的是所有上傳文件的尺寸之和,而不是指每個文件的尺寸。

啟動Tomcat后,在IE地址欄中輸入如下的URL來測試程序:

http://localhost:8080/samples/uploadMoreFile.jsp

下一篇: Struts1.x系列教程(10):Validator驗證框架入門

國內(nèi)最棒的Google Android技術(shù)社區(qū)(eoeandroid),歡迎訪問!

《銀河系列原創(chuàng)教程》 發(fā)布

《Java Web開發(fā)速學寶典》 出版,歡迎定購

Struts1.x系列教程(9):上傳任意多個文件


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本视频不卡 | 欧美日韩在线第一页 | 亚洲一区免费在线观看 | 中文字幕精品一区久久久久 | 国产精品高清在线 | 污网站观看 | 久久亚洲综合 | 四虎影视在线看免费 720p | 5060网午夜| 99国产精品久久久久久久成人热 | 日韩欧美大片在线观看 | 四虎永久免费地址ww 41.6 | 91av免费| 国产色产综合色产在线观看视频 | 九九久久看少妇高潮A片特黄 | 国产成人一区二区三区久久久 | 欧美日韩在线第一页 | 激情视频网站 | 色悠悠久久久久 | 亚洲操片| 日韩有码一区 | 亚洲欧美在线免费观看 | 国产日产精品久久久久快鸭 | 成人毛片免费视频播放 | 一区二区三区国产 | av一级久久 | 99精品视频在线在线视频观看 | 94在线成人免费视频 | 日韩精品区 | 欧美精品网站 | 亚洲精品一区久久久久久 | 亚洲精品专区 | 亚洲视频免费观看 | 欧美日本一道本 | 久久视频免费 | 精品一卡2卡三卡4卡免费观看 | 亚洲欧美一区二区三区国产精品 | 久久久久亚洲精品 | 亚洲一区二区三区免费视频 | 99这里只有精品6 | jiucao视频在线观看 |