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>
- 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>");
- }
- }



浙公网安备 33010602011771号