導航:首頁 > 版本升級 > 如何實現多個文件上傳

如何實現多個文件上傳

發布時間:2023-05-30 02:54:15

Ⅰ 如何上傳多個文件一次

這個主要看媒介機制,一般選擇文件的時候按住ctrl鍵然後選擇,可以選擇多個,但是有的不可以,因為網站機制限制一次只能傳一個,有的網站也可以拖拽文件達到上傳多個文件的目的

Ⅱ 論文指導如何上傳多個文件

一般選擇文件的時候按住ctrl鍵然後選擇,可以選擇多個,但是有的不可以,因為網站機制限制一次只能傳一個,有的網站也可以拖拽文件達到上傳多個文件

Ⅲ 多文件上傳思路

給個例子吧:傳幾個地圖文件到伺服器

1)aspx文件:
<%@ Page language="c#" Codebehind="AddMap.aspx.cs" AutoEventWireup="false" Inherits="ZiFengLast.SystemSet.AddMap" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>MapAdmin</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="javaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<LINK href="../StyleSheet1.css" type="text/css" rel="stylesheet">
<script language="javascript">
function AddFile()
{
var rows=document.getElementById("rows").value;
var cols=document.getElementById("cols").value;
var FileList=document.getElementById("MyFile");
if(document.getElementById("MyFile").innerHTML.toString().length>200)
{
// alert(document.getElementById("MyFile").innerHTML.toString().length);
FileList.innerHTML="<font class='TagTitle'><b>第1個地圖:</b></font> <input style='WIDTH: 200px; HEIGHT: 22px' type='file' size='14' name='File'>";
}
for(i=1;i<cols*rows;i++)
{
j=i+1;
var str ='<font class="TagTitle"><b>第'+j+'個地圖:</b></font> <input style="WIDTH: 200px; HEIGHT: 22px" type="file" size="14" name="File">';
FileList.insertAdjacentHTML("beforeEnd","<br>");
FileList.insertAdjacentHTML("beforeEnd",str);
}

}

</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" encType="multipart/form-data" runat="server">
<FONT face="宋體">
<TABLE id="Table1" style="BORDER-RIGHT: #33cc66 2px groove; BORDER-TOP: #33cc66 2px groove; Z-INDEX: 101; LEFT: 136px; BORDER-LEFT: #33cc66 2px groove; BORDER-BOTTOM: #33cc66 2px groove; POSITION: absolute; TOP: 32px"
width="500" align="center">
<TBODY>
<TR height="20">
<TD width="11%"></TD>
<TD width="11%"></TD>
<TD width="11%"></TD>
<TD width="11%"></TD>
<TD width="11%"></TD>
<TD width="11%"></TD>
<TD width="34%"></TD>
</TR>
<TR>
<TD colSpan="2"></TD>
<TD colSpan="4"><FONT class="WelcomeText" face="幼圓" color="#ff00ff" size="4">添加新地圖</FONT></TD>
</TR>
<tr>
<td class="TagTitle" align="right" colSpan="3"><b>請選擇地圖規格:</b></td>
<td class="TagTitle" colSpan="2"><input id="rows" style="WIDTH: 32px; HEIGHT: 22px" type="text" size="1" value="1" runat="server"
NAME="rows">行<input id="cols" style="WIDTH: 32px; HEIGHT: 22px" type="text" size="1" value="1" runat="server"
NAME="cols">列</td>
<td colSpan="2"><input style="WIDTH: 72px; HEIGHT: 22px" onclick="AddFile()" type="button" value="確定"></td>
</tr>
<TR>
<TD class="TagTitle" align="right" width="33%" colSpan="3"><B>請選擇地圖文件:</B>
</TD>
<TD class="TagTitle" width="33%" colSpan="4"></TD>
</TR>
<tr>
<td colSpan="7">
<p id="MyFile"><font class="TagTitle"><b>第1個地圖:</b></font>
<input style="WIDTH: 200px; HEIGHT: 22px" type="file" size="14" name="File">
</p>
</td>
<TR>
<TD class="TagTitle" align="right" width="33%" colSpan="3"><B>請輸入地圖存儲名稱:</B>
</TD>
<TD class="TagTitle" align="left" width="33%" colSpan="4"><INPUT id="MapName" style="WIDTH: 128px; HEIGHT: 22px" type="text" size="16" name="Password"
runat="server">
<asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" CssClass="TagTitle" ErrorMessage="地圖名不能為空"
Font-Names="微軟雅黑" Font-Size="X-Small" ControlToValidate="MapName"></asp:requiredfieldvalidator></TD>
</TR>
<TR>
<TD class="TagTitle" style="HEIGHT: 29px" align="right" width="33%" colSpan="3"><B><asp:label id="Msg0" runat="server"></asp:label></B>
</TD>
<TD class="TagTitle" style="HEIGHT: 29px" width="33%" colSpan="4"><span class="ErrorMessage" id="OutputSpan" runat="server"><asp:label id="Msg" runat="server"></asp:label></span></TD>
</TR>
<TR>
<TD width="11%"></TD>
<TD width="11%"></TD>
<TD width="22%" colSpan="4">
<asp:button id="SubmitButton" runat="server" Font-Names="微軟雅黑" Font-Size="X-Small" Text="提交"
Height="26px" Width="60px"></asp:button><INPUT id="CancelButton" style="FONT-SIZE: x-small; WIDTH: 60px; FONT-FAMILY: 微軟雅黑; HEIGHT: 26px"
type="reset" value="清除" name="CancelButton"></TD>
<TD width="34%">
</TD>
</TR>
</TBODY>
</TABLE>
<TABLE id="Table2" style="Z-INDEX: 102; LEFT: 136px; WIDTH: 491px; POSITION: absolute; TOP: 8px; HEIGHT: 26px"
width="491" align="center">
<TR>
<TD class="TagTitle"><A href="DeleteMap.aspx"><FONT class="WelcomeText" face="幼圓">刪除已有地圖</FONT></A></TD>
</TR>
</TABLE>
</FONT>
</form>
</TR></TBODY></TABLE></FONT>
</body>
</HTML>

2)後台cs文件:關鍵是使用Request.Files獲取剛上傳的文件:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;

namespace ZiFengLast.SystemSet
{
/// <summary>
/// MapAdmin 的摘要說明。
/// </summary>
public class AddMap : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button SubmitButton;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
protected System.Web.UI.HtmlControls.HtmlGenericControl OutputSpan;
protected System.Web.UI.WebControls.Label Msg;
protected System.Web.UI.WebControls.Label Msg0;
protected System.Data.SqlClient.SqlConnection MapConn;
protected System.Data.SqlClient.SqlCommand MapComm;
protected System.Web.UI.HtmlControls.HtmlInputText rows;
protected System.Web.UI.HtmlControls.HtmlInputText cols;
protected System.Web.UI.HtmlControls.HtmlInputText MapName;

private void Page_Load(object sender, System.EventArgs e)
{

// 在此處放置用戶代碼以初始化頁面

}

#region Web 窗體設計器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調用是 ASP.NET Web 窗體設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
this.MapConn = new System.Data.SqlClient.SqlConnection();
this.MapComm = new System.Data.SqlClient.SqlCommand();
this.SubmitButton.Click += new System.EventHandler(this.SubmitButton_Click);
//
// MapConn
//
this.MapConn.ConnectionString =System.Configuration.ConfigurationSettings.AppSettings["sqlMap"];
//
// MapComm
//
this.MapComm.Connection = this.MapConn;
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void SubmitButton_Click(object sender, System.EventArgs e)
{
try
{
HttpFileCollection file=Request.Files;
System.Text.StringBuilder FileNameArray=new System.Text.StringBuilder();
string SaveName=this.MapName.Value.Trim();
string FileExtension0=System.IO.Path.GetExtension(System.IO.Path.GetFileName(file[0].FileName));
for(int i=0;i<file.Count;i++)
{
HttpPostedFile PostFile=file[i];
string FileName=System.IO.Path.GetFileName(PostFile.FileName);
FileName.Replace(";","_");
string FileExtension=System.IO.Path.GetExtension(FileName);
string ContentType=PostFile.ContentType.ToString();
string LastSaveName=SaveName+(i+1).ToString()+FileExtension;
PostFile.SaveAs(Request.MapPath("../Map/"+LastSaveName));
FileNameArray.Append(LastSaveName);
FileNameArray.Append(";");
}

this.MapComm.CommandText="Select [Map].* from [Map] where MapName='"+SaveName+"'";
this.MapConn.Open();
System.Data.SqlClient.SqlDataReader rd=this.MapComm.ExecuteReader();
if(rd.Read())
{
this.MapConn.Close();
this.MapConn.Dispose();
this.MapComm.Dispose();
rd.Close();
Msg0.Text="<font class=ErrorMessage>上傳文件失敗!</font>";
Msg.Text="<font class=ErrorMessage>已有該地圖名稱,請指定另外的名稱</font>";
}
else
{
rd.Close();
this.MapComm.CommandText="insert into [Map](MapName,MapRows,MapCols,MapFileNames) Values('"+SaveName+"',"+int.Parse(rows.Value)+","+int.Parse(cols.Value)+",'"+FileNameArray+"')";
//Response.Write(MapComm.CommandText);
this.MapComm.ExecuteNonQuery();
this.MapConn.Close();
this.MapConn.Dispose();
this.MapComm.Dispose();

}
Msg0.Text="<font class=ErrorMessage>上傳文件成功!</font>";
Msg.Text="<font class=ErrorMessage>共計上傳文件"+file.Count.ToString()+"個"+"<br>"+FileNameArray+"</font>";
}
catch(Exception ee)
{
Msg0.Text="<font class=ErrorMessage>上傳文件失敗!</font>";
Msg.Text="<font class=ErrorMessage>"+ee.ToString()+"</font>";
}

}

}
}

Ⅳ java實現多文件上傳

即使再多文件也是通過的單個文件逐次上傳的(zip等壓縮包實際上是一個文件)。實現思路就是將多個文件循環進行上傳,上傳方法舉例:
/**
* 上傳文件
*
* @param fileName
* @param plainFilePath 文件路徑路徑
* @param filepath
* @return
* @throws Exception
*/
public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FTPClient ftpClient = new FTPClient();
String bl = "false";
try {
fis = new FileInputStream(plainFilePath);
bos = new ByteArrayOutputStream(fis.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
Log.info("加密上傳文件開始");
Log.info("連接遠程上傳伺服器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
}
}
Log.info("檢查文件路徑是否存在:/"+filepath);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon( "查詢文件路徑不存在:"+"/"+filepath);
return bl;
}
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 設置文件類型(二進制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(fileName, fis);
Log.info("上傳文件成功:"+fileName+"。文件保存路徑:"+"/"+filepath+"/");
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}
}
備註:只需要修改上傳的伺服器地址、用戶名、密碼即可進行伺服器訪問上傳。根據實際需要修改即可。

Ⅳ php如何實現一次性上傳多個文件

<?php
$max_files=5; //最多上傳文件的個數,與 up.htm 中的 input file 控制項的個數相同
$up_ok_files=0; //成功上傳的文件個數
$up_folder="ups"; //保存上傳文件的目標文件夾
if(isset($_FILES['myfile'])){
//由於 $_FILES['myfile'] 是個數組,所以需要使用循環遍歷
for($i=0;$i<$max_files;$i++){
//如果未出錯
if($_FILES['myfile']['error'][$i]==0){
if(move_uploaded_file($_FILES['myfile']['tmp_name'][$i],$up_folder."/".$_FILES['myfile']['name'][$i])){
//成功上傳後,計數器增 1
$up_ok_files +=1;
}
else{
echo "<h4 style='color:red;'>在伺服器中保存失敗</h4>";
}
}
}
echo "<h4>成功上傳 ".$up_ok_files. " 個文件</h4>";
}
?>

如果對 $_FILES['myfile'] 這個數組的結構不清楚,那麼可以在循環之前加入這句代碼將其顯示出來:
print_r($_FILES['myfile']);

對這個數組的結構了解之後,理解上述代碼就比較容易了。
foreach循環實現
常規下,php上傳一張圖片,頁面上添加一個文件域,上傳後,得到的數組是二維數組
轉變一下,
頁面上添加多個文件域,並且他們的name屬性相同,而且是以數組形式提交(比如:name="file[]")
那麼上傳後,得到的是三維數組
而,php中,foreach循環對遍歷數組那真是完美至極
用foreach遍歷一次這個三維數組,得到的結果就又是二維數組,那麼,就和上傳一張圖片一樣一樣的了

Ⅵ 手機怎麼把文件大量傳到電腦上

數據線直接連接電腦,把他作為外部存儲單元,在手機我的文檔中查看,在設置中設定一下,可直接拷貝,也可以連接個外部存儲卡或U盤

Ⅶ 幾種js實現的動態多文件上傳

方式一:事先寫好多個input.在點擊時才顯示。也就是說上傳的最大個數是寫死了的。
html

<p>
<a href='#' onclick='javascript:viewnone(more1)'> 添加附件 </a>
<div id='more1' style='display:none'>
<input type="file" name="attach1" size="50"javascript:viewnone(more2)>
</span>
</div>
<div id='more2' style='display:none'>
<input type="file" name="attach2" size="50"'>
</div>
</p>
js
<SCRIPT language="javascript">
function viewnone(e){
e.style.display=(e.style.display=="none")?"":"none";
}
</script>

方式二:這種方式的動態多文件上傳是實現了的,很簡單的,不說廢話看code
html

<input type="button" name="button" value="添加附件" onclick="addInput()">
<input type="button" name="button" value="刪除附件" onclick="deleteInput()">
<span id="upload"></span>
js

<script type="text/javascript">
var attachname = "attach";
var i=1;
function addInput(){
if(i>0){
var attach = attachname + i ;
if(createInput(attach))
i=i+1;
}

}
function deleteInput(){
if(i>1){
i=i-1;
if(!removeInput())
i=i+1;
}
}

function createInput(nm){
var aElement=document.createElement("input");
aElement.name=nm;
aElement.id=nm;
aElement.type="file";
aElement.size="50";
//aElement.value="thanks";
//aElement.onclick=Function("asdf()");
if(document.getElementById("upload").appendChild(aElement) == null)
return false;
return true;
}

function removeInput(nm){
var aElement = document.getElementById("upload");
if(aElement.removeChild(aElement.lastChild) == null)
return false;
return true;
}

</script>

方式三:動態多文件上傳,只是在oFileInput.click();這個地方,這樣做就不能上傳這個文件了,因為發現它在上傳之時就把這個input中的文件置空了。很可能是為了安全著想吧!
另外還有一點就是說,click()只有在ie中才能正常運行。
雖說這種方式最終沒能實現上傳,但還是留下來參考,看看是否有人可以真正實現上傳。
html

<A href="javascript:newUpload();">添加附件</A>
<TABLE width="100%" border="0" cellpadding="0" cellspacing="1">
<TBODY id="fileList"></TBODY>
</TABLE>
<DIV id="uploadFiles" style="display:block"></DIV>
js

<SCRIPT language="javascript">

//---新建上傳
function newUpload(){
var oFileList = document.getElementById("fileList");
var fileCount = oFileList.childNodes.length + 1;
var oFileInput = newFileInput("upfile_" + fileCount);
if(selectFile(oFileInput)){
addFile(oFileInput);
}
}

//----選擇文件
function selectFile(oFileInput){
var oUploadFiles = document.getElementById("uploadFiles");
oUploadFiles.appendChild(oFileInput);
oFileInput.focus();
oFileInput.click();//不能這樣做,可能是為了安全著想吧!
var fileValue = oFileInput.value;
if(fileValue == ""){
oUploadFiles.removeChild(oFileInput);
return false;
}
else
return true;

}

//---新建一個文件顯示列表
function addFile(oFileInput){
var oFileList = document.getElementById("fileList");
var fileIndex = oFileList.childNodes.length + 1;
var oTR = document.createElement("TR");
var oTD1 = document.createElement("TD");
var oTD2 = document.createElement("TD");

oTR.setAttribute("id","file_" + fileIndex);
oTR.setAttribute("bgcolor","#FFFFFF");
oTD1.setAttribute("width","6%");
oTD2.setAttribute("width","94%");
oTD2.setAttribute("align","left");
oTD2.innerText = oFileInput.value;
oTD1.innerHTML = '<A href="javascript:removeFile('+ fileIndex + ');">刪除</A>';

oTR.appendChild(oTD1);
oTR.appendChild(oTD2);
oFileList.appendChild(oTR);
}

//---移除上傳的文件
function removeFile(fileIndex){
var oFileInput = document.getElementById("upfile_" + fileIndex);
var oTR = document.getElementById("file_" + fileIndex);
uploadFiles.removeChild(oFileInput);
fileList.removeChild(oTR);
}

//---創建一個file input對象並返回
function newFileInput(_name){
var oFileInput = document.createElement("INPUT");
oFileInput.type = "file";
oFileInput.id = _name;
oFileInput.name = _name;
oFileInput.size="50";
//oFileInput.setAttribute("id",_name);
//oFileInput.setAttribute("name",_name);
//oFileInput.outerHTML = '<INPUT type=file id=' + _name + ' name=' + _name + '>';
//alert(oFileInput.outerHTML);
return oFileInput;
}

</SCRIPT>

Ⅷ php如何實現一次性上傳多個文件

在伺服器中保存失敗";x0dx0a }x0dx0a }x0dx0a }x0dx0a echo "

成功上啟搏傳 ".$up_ok_files. " 個文件

"; x0dx0a}x0dx0a?>x0dx0ax0dx0a 如果對 $_FILES['myfile'] 這個數組的結構不清楚,那麼可以在循環之前加入這洞旁耐句代碼將其顯示出來:x0dx0aprint_r($_FILES['myfile']);x0dx0ax0dx0a 對這個數組的納春結構了解之後,理解上述代碼就比較容易了。x0dx0aforeach循環實現x0dx0a常規下,php上傳一張圖片,頁面上添加一個文件域,上傳後,得到的數組是二維數組x0dx0a轉變一下,x0dx0a頁面上添加多個文件域,並且他們的name屬性相同,而且是以數組形式提交(比如:name="file[]")x0dx0a那麼上傳後,得到的是三維數組x0dx0a而,php中,foreach循環對遍歷數組那真是完美至極x0dx0a用foreach遍歷一次這個三維數組,得到的結果就又是二維數組,那麼,就和上傳一張圖片一樣一樣的了

Ⅸ 如何通過js完成多個文件的上傳

HTML5 file組件的新屬性
accept : 如果在file組件中增加這個屬性就可以直接控制上傳的文件類型了,實在是很方便。
multiple:是否允許選擇多個文件
HTML5 頁面代碼修改後

<img width="400" height="250"/><br />
<input type="file" id="pic" name="pic" onchange="printFileInfo()" accept="image/*" multiple="multiple"/>
<input type="button" value="上傳圖片" onclick="uploadFile()" /><br />
<div id="parent">
<div id="son"></div>
</div>

accept 的值可以參閱:IANA MIME 類型(標准 MIME 類型的完整列表),如果使用的是DW開發的話,軟體本身就有提示。
如果選擇了多個文件,可以用JS做循環列印,看看文件的名稱,類型和大小,看演示代碼

function printFileInfo(){

var picFile = document.getElementById("pic");
var files = picFile.files;
for(var i=0; i<files.length; i++){
var file = files[i];
var div = document.createElement("div")
div.innerHTML = "第("+ (i+1) +") 個文件的名字:"+ file.name +
" , 文件類型:"+ file.type +" , 文件大小:"+ file.size
document.body.appendChild( div)
}
}

既然可以循環多文件的話,就可以嘗試多文件上傳了。
1、首先創建 XMLHttpRequest 對象
//這是全局變數。因為是示例,所以就沒有判斷瀏覽器類型,低版本IE這么寫的話會出問題的
var xhr = new XMLHttpRequest()
2、上篇介紹了進度事件(Progress) , 這次實現 progress 和 error 2個事件
error:在請求發生錯誤時觸發。
對應上傳時發生錯誤導致的上傳失敗:uploadFailed()
//上傳失敗
function uploadFailed(evt) {
alert("上傳失敗");
}
progress:在接收相應期間持續不斷觸發。

對應上傳進度方法:onprogress()
/**
* 偵查附件上傳情況 ,這個方法大概0.05-0.1秒執行一次
*/
function onprogress(evt){
var loaded = evt.loaded; //已經上傳大小情況
var tot = evt.total; //附件總大小
var per = Math.floor(100*loaded/tot); //已經上傳的百分比
$("#son").html( per +"%" );
$("#son").css("width" , per +"%");
}

最後就是上傳方法了,注意上面的html代碼中上傳用的方法也需要改成這個uploadFile()方法才能正常使用。

//上傳文件
function uploadFile() {
//將上傳的多個文件放入formData中
var picFileList = $("#pic").get(0).files;
var formData = new FormData();
for(var i=0; i< picFileList.length; i++){
formData.append("file" , picFileList[i] );
}

//監聽事件
xhr.upload.addEventListener("progress", onprogress, false);
xhr.addEventListener("error", uploadFailed, false);//發送文件和表單自定義參數
xhr.open("POST", "upload");
//記得加入上傳數據formData
xhr.send(formData);
}

Ⅹ 如何上傳多個文件

很簡單,你把要上傳的文件全部用滑鼠框起來,然後在隨便一個選中的圖標上點右鍵選擇「添加到壓縮文件」就可以了。
還可以給你的壓縮文件命名。

閱讀全文

與如何實現多個文件上傳相關的資料

熱點內容
網商銀行app790游戲大廳 瀏覽:487
網站授權訪問打不開怎麼回事 瀏覽:6
h5網站定製需要多少錢 瀏覽:933
倫敦金正規平台有哪些app 瀏覽:824
有什麼網站是一級域名 瀏覽:602
protel中找不到pcb文件 瀏覽:705
什麼編程語言最少 瀏覽:557
微信時代的愛 瀏覽:245
iphone5s香港直營店 瀏覽:690
js驗證碼判斷 瀏覽:394
蘋果5c屏幕顯示對比 瀏覽:586
win7應用程序打不開 瀏覽:914
foxmail收qq郵件密碼錯誤 瀏覽:716
網站源碼超市下載 瀏覽:641
超神app有哪些 瀏覽:196
html5文件讀寫 瀏覽:775
人妖互交視頻上什麼網站 瀏覽:759
iphone開發讀寫plist 瀏覽:201
wps篩選後的數據如何對應復制 瀏覽:887
怎麼移動網路狀態欄 瀏覽:900

友情鏈接