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
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

(三). 改变上传文件大小和时间限制
<httpRuntime>
executionTimeout="110" //上传等待时间
maxRequestLength="4096" //上传文件大小,默认为4M
</httpRuntime>
上传文件大小是由上面两个参数所决定的. 涉及到安全因素,不要设得太大.
分类:
Asp.Net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端