Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
2007-08-22 11:31
1591 查看
1public partial class UpMultiFileControl2 : System.Web.UI.UserControl
2...{
3 protected void Page_Load(object sender, EventArgs e)
4 ...{
5 if (!Page.IsPostBack)
6 ...{
7 SaveCurrentPageFileControls();
8 }
9 }
10 protected void btAddFile_Click(object sender, EventArgs e)
11 ...{
12 AddOneFileControl();
13 }
14
15 /**//**//**//// <summary>
16 /**//// 添加一个上传文件控件
17 /**//// </summary>
18 private void AddOneFileControl()
19 ...{
20 ArrayList al = new ArrayList();
<
1f613
/span>21 this.tbFiles.Rows.Clear();
22 GetFileControlsFromSession();
23 HtmlTableRow htr = new HtmlTableRow();
24 HtmlTableCell htc = new HtmlTableCell();
25 htc.Controls.Add(new FileUpload());
26 htr.Controls.Add(htc);
27 this.tbFiles.Rows.Add(htr);
28 SaveCurrentPageFileControls();
29 }
30
31 /**//**//**//// <summary>
32 /**//// 读取缓存中存储的上传文件控件集
33 /**//// </summary>
34 private void GetFileControlsFromSession()
35 ...{
36 ArrayList al = new ArrayList();
37 if (Session["FilesControls"] != null)
38 ...{
39 al = (System.Collections.ArrayList)Session["FilesControls"];
40 for (int i = 0; i < al.Count; i++)
41 ...{
42 HtmlTableRow htr1 = new HtmlTableRow();
43 HtmlTableCell htc1 = new HtmlTableCell();
44 htc1.Controls.Add((System.Web.UI.WebControls.FileUpload)al[i]);
45 htr1.Controls.Add(htc1);
46 this.tbFiles.Rows.Add(htr1);
47 }
48 }
49 }
50
51 /**//**//**//// <summary>
52 /**//// 保存当前页面上传文件控件集到缓存中
53 /**//// </summary>
54 private void SaveCurrentPageFileControls()
55 ...{
56 ArrayList al = new ArrayList();
57 foreach (Control controlTR in this.tbFiles.Controls)
58 ...{
59 if (controlTR.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlTableRow")
60 ...{
61 HtmlTableCell htc = (HtmlTableCell)controlTR.Controls[0];
62 foreach (Control controlFileUpload in htc.Controls)
63 ...{
64 if (controlFileUpload.GetType().ToString() == "System.Web.UI.WebControls.FileUpload")
65 ...{
66 FileUpload tempFileUpload = (FileUpload)controlFileUpload;
67 al.Add(tempFileUpload);
68 }
69 }
70 }
71 }
72 Session.Add("FilesControls", al);
73 }
74
75 protected void btUpFiles_Click(object sender, EventArgs e)
76 ...{
77 UpLoadFiles();
78 }
79
80 /**//**//**//// <summary>
81 /**//// 上传文件操作
82 /**//// </summary>
83 private void UpLoadFiles()
84 ...{
85 string filepath = Server.MapPath("./")+"UploadFiles";
86
87 HttpFileCollection uploadedFiles = Request.Files;
88 for (int i = 0; i < uploadedFiles.Count; i++)
89 ...{
90 HttpPostedFile userPostedFile = uploadedFiles[i];
91 try
92 ...{
93 if (userPostedFile.ContentLength > 0 )
94 ...{
95 userPostedFile.SaveAs(filepath + "/" + System.IO.Path.GetFileName(userPostedFile.FileName));
96 Response.Write("已上传文件: "" + filepath +"/"+ userPostedFile.FileName +""<br><br>" );
97 }
98 }
99 catch
100 ...{
101 Response.Write("上传文件: "" + userPostedFile.FileName +""出错!");
102 }
103 }
104 if (Session["FilesControls"] != null)
105 ...{
106 Session.Remove("FilesControls");
107 }
108 }
109}1public partial class UpMultiFileControl2 : System.Web.UI.UserControl
2...{
3 protected void Page_Load(object sender, EventArgs e)
4 ...{
5 if (!Page.IsPostBack)
6 ...{
7 SaveCurrentPageFileControls();
8 }
9 }
10 protected void btAddFile_Click(object sender, EventArgs e)
11 ...{
12 AddOneFileControl();
13 }
14
15 /**//**//**//// <summary>
16 /**//// 添加一个上传文件控件
17 /**//// </summary>
18 private void AddOneFileControl()
19 ...{
20 ArrayList al = new ArrayList();
21 this.tbFiles.Rows.Clear();
22 GetFileControlsFromSession();
23 HtmlTableRow htr = new HtmlTableRow();
24 HtmlTableCell htc = new HtmlTableCell();
25 htc.Controls.Add(new FileUpload());
26 htr.Controls.Add(htc);
27 this.tbFiles.Rows.Add(htr);
28 SaveCurrentPageFileControls();
29 }
30
31 /**//**//**//// <summary>
32 /**//// 读取缓存中存储的上传文件控件集
33 /**//// </summary>
34 private void GetFileControlsFromSession()
35 ...{
36 ArrayList al = new ArrayList();
37 if (Session["FilesControls"] != null)
38 ...{
39 al = (System.Collections.ArrayList)Session["FilesControls"];
40 for (int i = 0; i < al.Count; i++)
41 ...{
42 HtmlTableRow htr1 = new HtmlTableRow();
43 HtmlTableCell htc1 = new HtmlTableCell();
44 htc1.Controls.Add((System.Web.UI.WebControls.FileUpload)al[i]);
45 htr1.Controls.Add(htc1);
46 this.tbFiles.Rows.Add(htr1);
47 }
48 }
49 }
50
51 /**//**//**//// <summary>
52 /**//// 保存当前页面上传文件控件集到缓存中
53 /**//// </summary>
54 private void SaveCurrentPageFileControls()
55 ...{
56 ArrayList al = new ArrayList();
57 foreach (Control controlTR in this.tbFiles.Controls)
58 ...{
59 if (controlTR.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlTableRow")
60 ...{
61 HtmlTableCell htc = (HtmlTableCell)controlTR.Controls[0];
62 foreach (Control controlFileUpload in htc.Controls)
63 ...{
64 if (controlFileUpload.GetType().ToString() == "System.Web.UI.WebControls.FileUpload")
65 ...{
66 FileUpload tempFileUpload = (FileUpload)controlFileUpload;
67 al.Add(tempFileUpload);
68 }
69 }
70 }
71 }
72 Session.Add("FilesControls", al);
73 }
74
75 protected void btUpFiles_Click(object sender, EventArgs e)
76 ...{
77 UpLoadFiles();
78 }
79
80 /**//**//**//// <summary>
81 /**//// 上传文件操作
82 /**//// </summary>
83 private void UpLoadFiles()
84 ...{
85 string filepath = Server.MapPath("./")+"UploadFiles";
86
87 HttpFileCollection uploadedFiles = Request.Files;
88 for (int i = 0; i < uploadedFiles.Count; i++)
89 ...{
90 HttpPostedFile userPostedFile = uploadedFiles[i];
91 try
92 ...{
93 if (userPostedFile.ContentLength > 0 )
94 ...{
95 userPostedFile.SaveAs(filepath + "/" + System.IO.Path.GetFileName(userPostedFile.FileName));
96 Response.Write("已上传文件: "" + filepath +"/"+ userPostedFile.FileName +""<br><br>" );
97 }
98 }
99 catch
100 ...{
101 Response.Write("上传文件: "" + userPostedFile.FileName +""出错!");
102 }
103 }
104 if (Session["FilesControls"] != null)
105 ...{
106 Session.Remove("FilesControls");
107 }
108 }
109}
(三). 改变上传文件大小和时间限制
<httpRuntime>
executionTimeout="110" //允许上传文件最大等待时间
maxRequestLength="4096" //上传文件大小,默认为4M
</httpRuntime>
上传文件大小是由上面两个参数所决定的. 涉及到安全因素,最好不要设得太大.
(四). 示例源代码下载
http://www.cnblogs.com/Files/ChengKing/UpMultiFileControl.rar
相关文章推荐
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- [导入]Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载).NET技术
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传(用户控件)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件
- Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)
- ASP.NET 2.0使用FileUpload控件上传文件示例
- Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)
- Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)
- Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)
- ASP.NET 2.0使用FileUpload控件上传文件示例