使用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,解压后可以得到如下文件:

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

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个工具:

我们主要使用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. 最终效果:

四、实例使用环境

1. 使用环境VS2012+.Net Framework2.0,如果是在.Net Framework 3.5及其以上版本使用安装和配置会更简单。

五、 常见问题

1.

解决方法是在system.webServer节中加入以下内容,让服务器允许的最大请求量增加,如下设置的是1G:

1 <security>
2 <requestFiltering>
3 <requestLimits maxAllowedContentLength="1073741824"/>
4 </requestFiltering>
5 </security>

2.

解决方法是在system.webServer节中加入以下内容,以适应在托管管道模式下运行应用程序:

1 <modules>
2 <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload" />
3 </modules>
 
 
分类: ASP.NET相关

使用NeatUpload控件实现ASP.NET大文件上传的更多相关文章

  1. ASP.NET 大文件上传的简单处理

    在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...

  2. asp.net大文件上传解决方案

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

  3. 使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传

    Anthem.NET刚刚发布了其最新的1.5版本,其中很不错的一个新功能就是对文件上传功能的Ajax实现.本文将简要介绍一下该功能的使用方法. Anthem.NET的下载与安装 Anthem.NET可 ...

  4. ASP.NET大文件上传断点续传解决方案

    HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...

  5. ASP.Net大文件上传组件详解

    首先右键单击网站根目录,在弹出的快捷菜单中,选择"添加引用"菜单项,弹出"添加引用",切换到"浏览"找到组件的Dll文件"Best ...

  6. ASP.NET 大文件上传

    一 web.config 配置: 1). <system.webServer> <security> <requestFiltering> <!-- maxA ...

  7. asp.net大文件上传与上传文件进度条问题

    利用Plupload解决大容量文件上传问题, 带进度条和背景遮罩层 关于Plupload结合上传插件jquery.plupload.queue的使用 这是群里面一位朋友给的资料. 下面是自己搜索到的一 ...

  8. asp.net 大文件上传配置

    <system.web> <httpRuntime requestValidationMode=" ></httpRuntime> <!--单位:K ...

  9. vue大文件上传组件选哪个好?

    需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

随机推荐

  1. Hibernate各保存方法之间的差 (save,persist,update,saveOrUpdte,merge,flush,lock)等一下

    hibernate保存  hibernate要保存的目的是提供一个方法,多.它们之间有许多不同之处,点击此处详细说明.使得差: 一.预赛: 在所有.阐释.供hibernate,,transient.p ...

  2. Ajax.BeginForm的异步提交数据 简介

    Html.BeginForm与Ajax.BeginForm都是MVC架构中的表单元素,它们从字面上可以看到区别,即Html.BeginForm是普通的表单提交,而Ajax.BeginForm是支持异步 ...

  3. iOS:Block写递归

    首先来一个 oc 的递归: - (int)sum:(int)num { ) { return num; } ]; } 写递归算法只需要记住两点即可: 1. 有一个明确的出口 2. 不满足条件出口时,自 ...

  4. js调用wcf 的SOA

    jquery 调用wcf 的SOA架构,将三层架构运用到SOA的架构中来 经过前面3天的学习,我想大家应该对SOA的架构有了初步的了解,其实 SOA与三层架构并不冲突,而是三层架构的升级版. 来看下传 ...

  5. cocos2d-x 移植android竖,横屏设置

    AndroidManifest.xml于android:screenOrientation现场控制屏幕方向,默认为横屏 android:screenOrientation="landscap ...

  6. 剑指XX(游戏10) - 走正步工厂一个安静的农场游戏的代码

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2lsYW5ncXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  7. API帮助页面

    ASP.NET Web API 2:创建API帮助页面        当你新建了一个web API服务之后,再建一个API帮助页面是很有好处的,这样其他开发人员就会很清楚地知道如何调用你的API接口. ...

  8. JS全选功能代码优化

    原文:JS全选功能代码优化 JS全选功能代码优化 最近在看javascript MVC那本书,也感觉到自己写的代码也并不优雅,所以一直在想 用另一种模式来编写JS代码,所以针对之前的简单的JS全选功能 ...

  9. 采用malloc分别分配2KB个人空间,然后,realloc调整到6KB、1MB、3MB、10MB场地,分别这五内存“A”、“B”、“C”、“D”、“E”灌装

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> i ...

  10. Appium Android Bootstrap源码分析之简介

    在上一个系列中我们分析了UiAutomator的核心源码,对UiAutomator是怎么运行的原理有了根本的了解.今天我们会开始另外一个在安卓平台上基于UiAutomator的新起之秀--Appium ...