ASP.NET实例:多文件上传源码_[Asp.Net教程]
					using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
public partial class _Default : System.Web.UI.Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
 if (!Page.IsPostBack)//首次执行页面
 {
 SFUPC();//页面执行一次将上传文件控件集到缓存中
 }
 }
 protected void Button1_Click(object sender, EventArgs e)
 {
 UpFile();//执行上传文件
 }
 protected void Button2_Click(object sender, EventArgs e)
 {
 InsertC();//执行添加控件方法
 }
 private void SFUPC()//该方法用于保存当前页面上传文件控件集到缓存中
 {
 ArrayList AL = new ArrayList();//创建动态增加数组
 foreach (Control C in F.Controls)
 {
 if (C.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlTableRow")
 {
 HtmlTableCell HTC = (HtmlTableCell)C.Controls[0];
 foreach (Control FUC in HTC.Controls)
 {
 if (FUC.GetType().ToString() == "System.Web.UI.WebControls.FileUpload")
 {
 FileUpload FU = (FileUpload)FUC;
 AL.Add(FU);
 }
 }
 }
 }
 Session.Add("FilesControls", AL);
 }
 private void InsertC()//该方法用于添加一个上传文件的控件
 {
 ArrayList AL = new ArrayList();
 this.F.Rows.Clear();
 GetInfo();
 HtmlTableRow HTR = new HtmlTableRow();
 HtmlTableCell HTC = new HtmlTableCell();
 HTC.Controls.Add(new FileUpload());
 HTR.Controls.Add(HTC);
 F.Rows.Add(HTR);
 SFUPC();
 }
 private void GetInfo()//该方法用于读取缓存中存储的上传文件控件集
 {
 ArrayList AL = new ArrayList();
 if (Session["FilesControls"] != null)
 {
 AL = (System.Collections.ArrayList)Session["FilesControls"];
 for (int i = 0; i < AL.Count; i++)
 {
 HtmlTableRow HTR = new HtmlTableRow();
 HtmlTableCell HTC = new HtmlTableCell();
 HTC.Controls.Add((System.Web.UI.WebControls.FileUpload)AL[i]);
 HTR.Controls.Add(HTC);
 F.Rows.Add(HTR);
 }
 }
 }
 private void UpFile()//该方法用于执行文件上传操作
 {
 string FilePath = Server.MapPath("./") + "File";
 HttpFileCollection HFC = Request.Files;
 for (int i = 0; i < HFC.Count; i++)
 {
 HttpPostedFile UserHPF = HFC[i];
 try
 {
 if (UserHPF.ContentLength > 0)
 {
 UserHPF.SaveAs(FilePath + "\\" + System.IO.Path.GetFileName(UserHPF.FileName));
 Label1.Text = "上传成功!";
 }
 else
 {
 Label1.Text = "处理出错!文件不能为空";
 }
 }
 catch
 {
 Label1.Text = "处理出错!";
 }
 }
 if (Session["FilesControls"] != null)
 {
 Session.Remove("FilesControls");
 }
 
 }
}