Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)delvpublished in(发表于) 2014/1/24 9:07:46 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"); } }}
赞