一般10M以下的文件上传通过设置Web.Config,再用VS2005自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了,这时可以用NeatUpload来上传,步骤如下:
1,在工具箱中添加Brettle.Web.NeatUpload.dll,方法:打开VS2005--->点击'工具箱'--->选中一项,如:'常规'这项--->单击右键--->在弹出的菜 单中选'选择项'--->在弹出的窗口中选择'浏览'--->找到'Brettle.Web.NeatUpload.dll'这个文件 --->按确定就添加上了,这时工具箱中多出几个控件出来,有InputFile,progressbar 等,我们主要用这两个.
2.复制文件夹NeatUpload到根目录.
3.拖放使用上传控件InputFile和进度条ProgressBar,添加上传文件的按钮.aspx页面代码如下:
2 Inherits = " Koodoo.Web.LinkedContent " %>
3
4 <% @ Register assembly = " Brettle.Web.NeatUpload " namespace = " Brettle.Web.NeatUpload " tagprefix = " Upload " %>
5
6 <! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
7 < html xmlns = " http://www.w3.org/1999/xhtml " >
8 < head runat = " server " >
9 < title ></ title >
10 </ head >
11 < body id = " linkedcontent " >
12 < form id = " form1 " runat = " server " >
13 < div class = " pagebox " >
14 < div class = " innerbox " >
15 < Upload:InputFile ID = " attachFile " runat = " server " />
16 < asp:Button ID = " btnUpload " Text = " 上传 " runat = " server " onclick = " btnUpload_Click " />
17 < br />
18 < Upload:ProgressBar ID = " ProgressBar1 " runat = " server " />
19 </ div >
20 </ div >
21 </ form >
22 </ body >
23 </ html >
4.给上传按钮添加Upload_Click事件:
2 {
3 if (AttachFile.HasFile)
4 {
5 string FileName = this .AttachFile.FileName; // 获取上传文件的文件名,包括后缀
6 string ExtenName = System.IO.Path.GetExtension(FileName); // 获取扩展名
7 string SaveFileName = System.IO.Path.Combine(
8 System.Web.HttpContext.Current.Request.MapPath( " UpLoads/ " ),
9 DateTime.Now.ToString( " yyyyMMddhhmm " ) + ExtenName); // 合并两个路径为上传到服务器上的全路径
10 AttachFile.MoveTo(SaveFileName, Brettle.Web.NeatUpload.MoveToOptions.Overwrite);
11 string url = " UpLoads/ " + DateTime.Now.ToString( " yyyyMMddhhmmss " ) + ExtenName; // 文件保存的路径
12 float FileSize = ( float )System.Math.Round(( float )AttachFile.ContentLength / 1024000 , 1 ); // 获取文件大小并保留小数点后一位,单位是M
13 }
14 }
5.注意,要还在Web.Config里进行设置:
2
3 < configSections >
4
5 < sectionGroup name ="system.web" >
6
7 < section name ="neatUpload"
8 type ="Brettle.Web.NeatUpload.ConfigSectionHandler,Brettle.Web.NeatUpload" allowLocation ="true" />
9
10 </ sectionGroup >
11
12 </ configSections >
13
14 < system.web >
15
16 < httpModules >
17
18 <!--上传大文件 -->
19
20 < add name ="UploadHttpModule"
21 type ="Brettle.Web.NeatUpload.UploadHttpModule,Brettle.Web.NeatUpload" />
22
23 </ httpModules >
24
25 <!-- useHttpModule="true" 设为true时才能看到上传状态,默认是False -->
26
27 < neatUpload useHttpModule ="true" maxNormalRequestLength ="1048576" maxRequestLength ="1048576" defaultProvider ="FilesystemUploadStorageProvider" >
28
29 < providers >
30
31 < add name ="FilesystemUploadStorageProvider"
32 type ="Brettle.Web.NeatUpload.FilesystemUploadStorageProvider, Brettle.Web.NeatUpload" />
33
34 </ providers >
35
36 </ neatUpload >
37
38 < httpRuntime maxRequestLength ="1048576" executionTimeout ="3600" />
39
40 </ system.web >
41
42 </ configuration >
最后这里是上面需要的文件和dll文件的源代码以及怎样用的例子
Brettle.Web.NeatUpload.dll源代码
NeatUpload文件夹
NeatUpload.dll Demo