多文件上传技术详解
来源:互联网 发布:tomcat8w java options 编辑:程序博客网 时间:2024/06/06 12:51
页面元素:FileUpLoad控件、Button控件、Label控件。
步骤:
(1)首次打开页面调用SFUPC()方法:每执行一次就向缓存中添加一个FileUpLoad控件,代码如下:
Protected void Page_Load(Object sender,EventArgs e)
...{
if(!Page.IsPostBack)
...{
SFUPC();
}
}
...{
if(!Page.IsPostBack)
...{
SFUPC();
}
}
(2)触发“上传文件”的Click事件,调用UpFile()方法执行文件上传操作,代码如下:
Protected void Button1_Click(Object sender,EventArgs e)
...{
UpFile();
}
...{
UpFile();
}
(3)触发“添加文件”的Click事件,调用Insert()方法执行添加上传控件的操作,代码如下:
Protected void Button2_Click(Object sender,EventArgs e)
...{
InsertC();
}
...{
InsertC();
}
(4)SFUPC()方法:主要是保存当前页面上传文件控件集到缓存中。
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);
}
...{
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);
}
(5)定义一个InsertC():用于添加一个上传文件的控件。
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();
}
...{
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();
}
(6)定义GetInfo()方法,用于读取缓存中存储的上传文件控件集。
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);
}
}
}
...{
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);
}
}
}
(7)定义UpFile()方法,用于执行文件上传操作。
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 = "上传成功!";
}
...{
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 = "上传成功!";
}
- 多文件上传技术详解
- struts2的文件上传技术实例详解
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- Struts上传文件技术
- PHP文件上传技术
- smartupload文件上传技术
- fileupload上传文件技术
- java--文件上传技术
- servlet文件上传技术
- 写个游戏?
- JSP的基本组件
- 即时战略游戏将领指挥人工智能方案设想
- 学习webservice
- vc++编程里堆和栈的区别
- 多文件上传技术详解
- JAVA真的输了吗?
- 几种常见的数据库连接方法
- Java Q&A: 使用Observer模式
- TOMCAT+JIVE的安装配置(支持中文)
- 用Java编写ASP组件
- Heritrix架构学习笔记(一)
- 调整(提高) Java I/O 性能
- 为什么凯明就不能倒闭?