首页 » 技术分享 » 使用NeatUpload控件实现ASP.NET大文件上传

使用NeatUpload控件实现ASP.NET大文件上传

 

使用NeatUpload控件实现ASP.NET大文件上传

一般10M以下的文件上传通过设置Web.Config,再用VS自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了。NeatUpload是一款为数不多的开源、免费的文件上传控件,不仅支持大文件上传,而且还显示上传进度。下面我们来介绍一下NeatUpload控件的使用方法。

一、下载NeatUpload并解压在任意位置

http://neatupload.codeplex.com/releases/view/59339,可以下载到最新的NeatUpload,目前最新版本应该是NeatUploadBinaries-1-3-26,解压后可以得到如下文件:

说明: https://images0.cnblogs.com/blog/16466/201310/17211529-ed4d1105ddfd46408923910d458d49e0.x-png

 

二、安装配置NeatUpload控件(.Net Framework2.0环境)

说明: https://images0.cnblogs.com/blog/16466/201310/17213129-4d715b3b1eb841a7bce20cabeccce6c4.x-png

1. 将上述bin/中Brettle.Web.NeatUpload.dll添加到%windir%\assembly中:

 

2. 将上述bin/中Brettle.Web.NeatUpload.dll添加到项目或网站的引用中,观察Web.config文件会发现自动增加了如下配置:

1 <compilation debug="false">

2       <assemblies>

3         <add assembly="Brettle.Web.NeatUpload, Version=1.3.4034.20191, Culture=neutral, PublicKeyToken=DD134EA1C3727369"/>

4       </assemblies>

5     </compilation>

 

3. 在工具箱上添加项,可以得到7个工具:

 

说明: https://images0.cnblogs.com/blog/16466/201310/17212101-b247cef348c240bfad8d616a3f44b09f.x-png

我们主要使用InputFile和ProgressBar这两个控件。

4. 在Web.config的system.web节加入如下配置,

1 <httpModules>

2       <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload" />

3     </httpModules>

至此,NeatUpload的安装和配置工作完成。

三、使用NeatUpload控件

1. 前台代码

 1 <body>

 2     <form id="form1" runat="server">

 3     <div>

 4         <Upload:InputFile ID="AttachFile" runat="server"/>

 5         <Upload:ProgressBar ID="ProgressBar1" runat='server'>

 6         </Upload:ProgressBar>

 7     </div>

 8         <div>

 9             <asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" />

10         </div>

11     </form>

12 </body>

2. 后台代码:

 1 protected void btnSave_Click(object sender, EventArgs e)

 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     }

3. 最终效果:

 

说明: https://images0.cnblogs.com/blog/16466/201310/17213715-47c5e045d02943b8aaf7307e73a433c4.x-png

 

而我使用的是一款自我开发的控件,话不多说,先看看控件的功能

这是此控件的大文件批量上传,与文件夹上传功能,也可直接复制文件或文件夹进行上传哦,如下图

说明: C:\Users\ADMINI~1\AppData\Local\Temp\1558315284(1).jpg

 

当我们遇到突发情况,电脑突然死机或断电,而我们的大量文件还只上传了一半怎么办呢,难道又要重新上传默默的等待?不要慌,这个我早有准备

当你重新打开浏览器时,你会发现上传的进度依然停留在原来的位置,继续上传即可

光上传怎么够,当然还要有与之匹配的下载功能,如图

当你文件上传完毕后,就会出现在界面上,勾选上,点击下载,设置下载目录后即可下载

怎么样,是否比你想象的还要强大与美观?如有兴趣可前往http://t.cn/zjKFHYU 可以详细了解此控件

转载自原文链接, 如需删除请联系管理员。

原文链接:使用NeatUpload控件实现ASP.NET大文件上传,转载请注明来源!

0