asp.net简单实例——同时上传多个文件

之前在网站上看到的一些上传文件的功能,感觉还是蛮方便的,这次自己利用asp.NET中的HttpFileCollection类做了一个简单的例子。废话不多说,下面看操作。

    首先,添加一个新的web窗体,在窗体上直接拖拽这几个控件:一个Panel作为容器、一个FileUpload来添加文件、一个TextBox用来设置同时添加文件的个数、以及两个Button,用于实际控制。如下图:

     准备工作做好之后,就开始编写代码了。我们首先来看一下HTML的源代码,这也是跟上图对应的源码:

  1. <html xmlns="http://www.w3.org/1999/xhtml">  
  2. <head runat="server">  
  3.     <title></title>  
  4. </head>  
  5. <body>  
  6.     <form id="form1" runat="server">  
  7.     <div>  
  8.       
  9.         <asp:Panel ID="plUpload" runat="server" Height="91px" Width="224px">  
  10.             <asp:FileUpload ID="FileUpload1" runat="server" />  
  11.             <br />  
  12.         </asp:Panel>  
  13.         <br />  
  14.         <asp:TextBox ID="txtsum" runat="server" Width="61px"></asp:TextBox>  
  15.  <asp:Button ID="btnadd" runat="server" onclick="btnadd_Click" Text="增加"   
  16.             Width="45px" />  
  17.    
  18.         <asp:Button ID="btnupfile" runat="server" onclick="btnupfile_Click" Text="上传全部"   
  19.             Width="86px" />  
  20.       
  21.     </div>  
  22.     </form>  
  23. </body>  
  24. </html>  
  1. protected void Page_Load(object sender, EventArgs e)  
  2. {  
  3.   
  4. }  
  5.   
  6. protected void btnadd_Click(object sender, EventArgs e)  
  7. {  
  8.     // 增加上传文件的个数  
  9.     FileUpload fu;  
  10.   
  11.     // 循环创建上传文件的控件  
  12.     for (int i = 0; i < Convert.ToInt32(txtsum.Text); i++)  
  13.     {  
  14.         // 初始化上传文件对象  
  15.         fu = new FileUpload();  
  16.         // 给对象的ID赋值  
  17.         fu.ID = "fu_" + i.ToString();  
  18.         // 向Panel容器中动态添加对象  
  19.         plUpload.Controls.Add(fu);  
  20.     }  
  21. }  
  22.   
  23. protected void btnupfile_Click(object sender, EventArgs e)  
  24. {  
  25.     // 声明名称、大小、类型等几个变量  
  26.     string f_name, f_size, f_type;  
  27.     // 使用一个变量获取到由客户端上传的文件集合  
  28.     HttpFileCollection hfc = Request.Files;  
  29.     // 循环这个集合  
  30.     for (int i = 0; i < hfc.Count; i++)  
  31.     {  
  32.         // 将每一个文件实例化成可以直接访问的实体  
  33.         HttpPostedFile hqf = hfc[i];  
  34.         // 将访问的文件名、类型、大小分别赋给相应的变量  
  35.         f_name = Path.GetFileName(hqf.FileName);  
  36.         f_size = hqf.ContentLength.ToString();  
  37.         f_type = hqf.ContentType;  
  38.         // 将上传的文件保存的指定的文件夹中  
  39.         hqf.SaveAs(Server.MapPath("~/up/")+f_name);  
  40.         // 将结果打印到页面上  
  41.         Response.Write("文件名称:" + f_name + "<br>" + "文件大小:" + f_size +"<br>" + "文件类型:" + f_type +"<br>");  
  42.     }  
  43. }  

posted @ 2017-03-16 10:37  我在码头等你  阅读(527)  评论(0)    收藏  举报