您的位置:首页 > 编程语言 > ASP

Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载).NET技术

2006-11-13 13:41 2471 查看
一、示例代码

1

public 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/huashanlin/archive/2006/08/24/484849.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐