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

本文介绍了一个自定义的ASP.NET用户控件用于实现多文件上传功能。详细展示了控件的使用方法,包括如何添加上传文件控件、读取及保存上传文件控件集、执行文件上传操作等。此外还提供了配置示例来调整上传文件的大小和时间限制。
2006年04月30日 22:19:00

学习, And 整理了一下.

(一). 示例图片

(二). 示例代码

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/Files/ChengKing/UpMultiFileControl.rar

(五).控件缺点

由于安全原因, 用服务端控件实现,回发时选择的文件不能够保存.



Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=699244


内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值