1. 程式人生 > >asp.net簡單例項——同時上傳多個檔案

asp.net簡單例項——同時上傳多個檔案

     之前在網站上看到的一些上傳檔案的功能,感覺還是蠻方便的,這次自己利用asp.net中的HttpFileCollection類做了一個簡單的例子。廢話不多說,下面看操作。

    首先,新增一個新的web窗體,在窗體上直接拖拽這幾個控制元件:一個Panel作為容器、一個FileUpload來新增檔案、一個TextBox用來設定同時新增檔案的個數、以及兩個Button,用於實際控制。如下圖:


     準備工作做好之後,就開始編寫程式碼了。我們首先來看一下HTML的原始碼,這也是跟上圖對應的原始碼:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:Panel ID="plUpload" runat="server" Height="91px" Width="224px">
            <asp:FileUpload ID="FileUpload1" runat="server" />
            <br />
        </asp:Panel>
        <br />
        <asp:TextBox ID="txtsum" runat="server" Width="61px"></asp:TextBox>
 <asp:Button ID="btnadd" runat="server" onclick="btnadd_Click" Text="增加" 
            Width="45px" />
 
        <asp:Button ID="btnupfile" runat="server" onclick="btnupfile_Click" Text="上傳全部" 
            Width="86px" />
    
    </div>
    </form>
</body>
</html>
CS程式碼
protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnadd_Click(object sender, EventArgs e)
{
	// 增加上傳檔案的個數
	FileUpload fu;

	// 迴圈建立上傳檔案的控制元件
	for (int i = 0; i < Convert.ToInt32(txtsum.Text); i++)
	{
		// 初始化上傳檔案物件
		fu = new FileUpload();
		// 給物件的ID賦值
		fu.ID = "fu_" + i.ToString();
		// 向Panel容器中動態新增物件
		plUpload.Controls.Add(fu);
	}
}

protected void btnupfile_Click(object sender, EventArgs e)
{
	// 宣告名稱、大小、型別等幾個變數
	string f_name, f_size, f_type;
	// 使用一個變數獲取到由客戶端上傳的檔案集合
	HttpFileCollection hfc = Request.Files;
	// 迴圈這個集合
	for (int i = 0; i < hfc.Count; i++)
	{
		// 將每一個檔案例項化成可以直接訪問的實體
		HttpPostedFile hqf = hfc[i];
		// 將訪問的檔名、型別、大小分別賦給相應的變數
		f_name = Path.GetFileName(hqf.FileName);
		f_size = hqf.ContentLength.ToString();
		f_type = hqf.ContentType;
		// 將上傳的檔案儲存的指定的資料夾中
		hqf.SaveAs(Server.MapPath("~/up/")+f_name);
		// 將結果列印到頁面上
		Response.Write("檔名稱:" + f_name + "<br>" + "檔案大小:" + f_size +"<br>" + "檔案型別:" + f_type +"<br>");
	}
}
效果如圖:



     當然,這只是一個簡單的小例子,箇中還有很多的不足,其他的上傳檔案的方法還沒學到,希望各位高人不吝指導。