使用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,解压后可以得到如下文件:
二、安装配置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>
使用NeatUpload控件实现ASP.NET大文件上传的更多相关文章
- ASP.NET 大文件上传的简单处理
在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...
- asp.net大文件上传解决方案
以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传 ...
- 使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传
Anthem.NET刚刚发布了其最新的1.5版本,其中很不错的一个新功能就是对文件上传功能的Ajax实现.本文将简要介绍一下该功能的使用方法. Anthem.NET的下载与安装 Anthem.NET可 ...
- ASP.NET大文件上传断点续传解决方案
HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...
- ASP.Net大文件上传组件详解
首先右键单击网站根目录,在弹出的快捷菜单中,选择"添加引用"菜单项,弹出"添加引用",切换到"浏览"找到组件的Dll文件"Best ...
- ASP.NET 大文件上传
一 web.config 配置: 1). <system.webServer> <security> <requestFiltering> <!-- maxA ...
- asp.net大文件上传与上传文件进度条问题
利用Plupload解决大容量文件上传问题, 带进度条和背景遮罩层 关于Plupload结合上传插件jquery.plupload.queue的使用 这是群里面一位朋友给的资料. 下面是自己搜索到的一 ...
- asp.net 大文件上传配置
<system.web> <httpRuntime requestValidationMode=" ></httpRuntime> <!--单位:K ...
- vue大文件上传组件选哪个好?
需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...
随机推荐
- cocos2dx 3.1.1移植安卓apk (lua交叉编译器项目 mac环境)
cocos2dx 3.1.1 lua项目安卓交叉编译 mac环境 本文基于ant,sdk,ndk,adt等软件和环境已经事前设置好 1\新建项目 在mac的终端下输入命令: cocos new t ...
- linux_ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机. ssh-keygen 创建公钥和密钥. ssh-copy-id 把本地主 ...
- jQuery版推箱子游戏详解和源码
前言 偶然间看到很多用js写游戏的感觉很炫酷的样子,所以就想试试,就看了一些资料和某前端站点的视屏.于是乎就自己动手实践了一下,上推箱子截图 感觉很丑陋,但是功能是实现了.再说貌似大多都是这样的吧,这 ...
- CSharp设计模式读书笔记(7):适配器模式(学习难度:★★☆☆☆,使用频率:★★★★☆)
适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper).适配器模式既可以作为类结构型模式,也可以作为对象 ...
- 让Docker功能更强大的10个开源工具
让Docker功能更强大的10个开源工具 更好的管理.Web前端程序.更深入地了解容器应用程序,Docker生态系统正在迅速发展,这还得归功于其充满活力的开源社区. 软件项目的成功常常根据其催生的生态 ...
- springmvc实现long-pulling技术
背景介绍: 项目中有一个通讯模块,本来是用websocket全双工技术实现的,但IE10下面不支持websocket,而国内的360.2345浏 览器封装的所有是IE10下面的内核,考虑到站点在国内的 ...
- 在ubuntu上部署hadoop时出现的问题
1. 配置ssh登录 不须要改动/etc/ssh/sshd_config 2. 新建hadoop用户时,home以下没有hadoop文件夹 用以下命令创建 useradd -m hadoop 3. n ...
- 所谓策略,我站在旁边看今天 神刻的样子O2O
雕爷.何许人也? 卖牛腩的大叔? 卖精油的大爷?还是卖烤肉的家伙? 事实上以上答案都是肯定的,他就是阿芙精油,雕爷牛腩创业神话的缔造者.那么雕爷是怎样取得这种创业成功的呢?前段时间我还不清楚雕爷的厉害 ...
- ArcGIS API for Silverlight 编辑Geometry
概述 ArcMap的编辑功能是非常强大的,ArcEngine编写的CS程序也可以用到ArcMap中提供的编辑功能,那么ArcGIS API forSilverlight针对Geometry的编辑提供了 ...
- DirectX11 学习笔记2 - 加入关键事件 实现视角转换 旋转
上的程序的的基础上.在基类D3DBase添加摄像头功能 //录影机 void D3DBase::setCamera() { //关键事件 //假定A,S,D,W,Q,E,Z,X,C键被按下.动摄像机 ...