您的位置:首页 > 其它

动态添加控件以及批量上传文件

2012-10-31 23:30 495 查看
1、例程

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) //F代表一表格table的ID
{
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));
}
}
catch
{
Label1.Text = "处理出错!";
}

}
if (Session["FilesControls"] != null)
{
Session.Remove("FilesControls");
}
Label1.Text = "上传成功!";
}
}


简单组合而已
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: