asp.net簡單例項——同時上傳多個檔案
阿新 • • 發佈:2019-01-03
之前在網站上看到的一些上傳檔案的功能,感覺還是蠻方便的,這次自己利用asp.net中的HttpFileCollection類做了一個簡單的例子。廢話不多說,下面看操作。
首先,新增一個新的web窗體,在窗體上直接拖拽這幾個控制元件:一個Panel作為容器、一個FileUpload來新增檔案、一個TextBox用來設定同時新增檔案的個數、以及兩個Button,用於實際控制。如下圖:
準備工作做好之後,就開始編寫程式碼了。我們首先來看一下HTML的原始碼,這也是跟上圖對應的原始碼:
CS程式碼<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>
效果如圖: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>"); } }
當然,這只是一個簡單的小例子,箇中還有很多的不足,其他的上傳檔案的方法還沒學到,希望各位高人不吝指導。