大文件上传NeatUpload简单用法 「终于解决」-
大文件上传NeatUpload简单用法 (转)「终于解决」一般10M以下的文件上传通过设置Web.Config,再用VS2005自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了,这时可以用NeatUpload来上传,步骤如下: 1,在工具箱中添加Brettle.Web.NeatUpload.dll,方法:打开VS2005—>点击工具箱—>选中一项,如:常规这项—>单击右键–
一般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页面代码如下:
1<%@PageLanguage=“C#“AutoEventWireup=“true“CodeBehind=“LinkedContent.aspx.cs“
2Inherits=“Koodoo.Web.LinkedContent“%>
3
4<%@Registerassembly=“Brettle.Web.NeatUpload“namespace=“Brettle.Web.NeatUpload“tagprefix=“Upload“%>
5
6<!DOCTYPEhtmlPUBLIC“-//W3C//DTDXHTML1.0Transitional//EN““http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
7<htmlxmlns=“http://www.w3.org/1999/xhtml“>
8<headrunat=“server“>
9<title></title>
10</head>
11<bodyid=“linkedcontent“>
12<formid=“form1“runat=“server“>
13<pclass=“pagebox“>
14<pclass=“innerbox“>
15<Upload:InputFileID=“attachFile“runat=“server“/>
16<asp:ButtonID=“btnUpload“Text=“上传“runat=“server“onclick=“btnUpload_Click“/>
17<br/>
18<Upload:ProgressBarID=“ProgressBar1“runat=“server“/>
19</p>
20</p>
21</form>
22</body>
23</html>
4.给上传按钮添加Upload_Click事件:
1
protected
void
Upload_Click(
object
sender,EventArgse)
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里进行设置:
1
<
configuration
>
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