NeatUpload是一个开源的大文件上传控件,非常的强大,支持文件类型过滤、上传进度条显示、多文件上传等强大的功能。最近在工作中使用Brettle.Web.NeatUpload.dll上传视频文件,在参考网上其他资料的基础上写了如下的使用记录:

1、    下载Brettle.Web.NeatUpload.dll,并在项目中添加引用;

2、    复制文件夹“NeatUpload”到项目根目录;

3、    在配置文件的<system.web>节点中添加如下配置:

<httpModules>

<!—使用NeatUpload控件及需要显示上传进度条-->

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

</httpModules>

4、    在上传文件的页面中引用该控件:

A、    页面代码:

添加上传控件:

B、    后台事件:

/// <summary>

/// 上传图片或者视频

/// </summary>

protected void UploadFile()

{

if (this.file_UpLoad.HasFile)

{

string fileType = Path.GetExtension(file_UpLoad.FileName.ToLower());

if (fileType != ".flv")

{

this.errorMsg.Text = "必须上传.flv文件!!";

return;

}

//上传文件的重命名

HiddenFile.Value = SetFileName(file_UpLoad.FileName);

//获取配置文件中限定的上传文件大小,这里设定显示2G,用户可以自定义

long size = (long)(Convert.ToInt32(ConfigurationManager.AppSettings["bigfile"])) * 1024 * 1024 * 1024;

//获取上传文件的大小

long longth2 = file_UpLoad.ContentLength;

if (longth2 > size)

{

this.errorMsg.Text = string.Format("单个文件不能超过{0}G!!", ConfigurationManager.AppSettings["bigfile"]);

return;

}

try

{

//把文件上传到指定的目录下,第一参数表示文件报错的路径和文件名称,这里把文件保存在根目录下的UpLoads文件夹中

file_UpLoad.MoveTo(Path.Combine(Request.PhysicalApplicationPath + "//UpLoads", HiddenFile.Value),

Brettle.Web.NeatUpload.MoveToOptions.Overwrite);

this.errorMsg.Text = "上传成功!!";

}

catch (Exception ex)

{

this.errorMsg.Text = "上传异常!!";

return;

}

}

}

/// <summary>

/// 重新命名文件名称

/// </summary>

protected string SetFileName(string filename)

{

int index = filename.IndexOf(".");

string extension = filename.Substring(index);//扩展名

string fName = Guid.NewGuid().ToString() + extension;            return fName;

}

5、完成以上4个步骤后,上传大文件的功能是已经完全实现的了,但是如果项目中其他地方使用普通的FileUpload上传时会发生了一个错误(Nonfile portion > 4194304 bytes,文件大于默认值4M),这时全站都会默认使用此httpModule,当你使用FileUpload上传文件时,只要是超过4M(默认的)的都不能上传,就算在配置文件中修改了普通的FileUpload上传大小的限制值(默认值允许上传2M的文件)<!--asp.net,默认只允许上传2M文件,增加如下配置,一般可以自定义最大文件大小.最大163840K,即160M -->

<httpRuntime executionTimeout="300" maxRequestLength="163840" useFullyQualifiedRedirectUrl="false " />都没用,还是会出现Nonfile portion > 4194304 bytes的错误的。

解决方法如下:

1)、首先在<configuration>节点中添加:

<configSections>

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

<sectionGroup name="system.web">

<section name="neatUpload" type="Brettle.Web.NeatUpload.ConfigSectionHandler, Brettle.Web.NeatUpload" allowLocation="true" />

</sectionGroup>

</configSections>

2)、然后在 <system.web>节点中添加:

<neatUpload useHttpModule="false" maxNormalRequestLength="4096" maxRequestLength="2097151" defaultProvider="FilesystemUploadStorageProvider">

<providers>

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

</providers>

</neatUpload>

3)、最后在<configuration>节点中添加:

<!--上传文件的页面路径-->

<location path="VideoAdd.aspx" >

<system.web>

<!--为true则代表使用neatUpload的httpModule,false为不使用-->

<neatUpload useHttpModule="true" />                               <httpRuntime maxRequestLength="2097151" executionTimeout="3600" useFullyQualifiedRedirectUrl="true" />

<!--允许最大为40M-->

</system.web>

</location>

转载于:https://www.cnblogs.com/LannyLiu/archive/2013/05/22/3092718.html

Brettle.Web.NeatUpload.dll大文件上传控件使用详解相关推荐

  1. [原创]Ajax UpLoadFile 多个大文件上传控件及应用范例

    ******作者语:这个控件很早就写了,但一直没有去完善*********************** ******现在重新整理了一次,应该方便了许多,希望大家多多提意见********* ***** ...

  2. vue大文件上传控件选哪个好?

    需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制. PC端全平台支持,要求支持Window ...

  3. 分享基于silverlight的一个大文件上传控件

    虽然codeplex已经有一些多文件,带进度条的上传控件,但是觉得都不是很好用,所以基于上面的控件重新设计了一个上传控件,更好的交互,属性绑定和管理文件. 1. 客户端使用: <mycontro ...

  4. 大文件上传控件webupload插件

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...

  5. vue+大文件上传控件

    总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...

  6. java文件上传控件_java实现大文件上传控件

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  7. 浏览器 WEB怎么实现大文件上传

    前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...

  8. NeatUpload:支持大文件上传 进度条

    NeatUpload:支持大文件上传 引用: NeatUpload可以让ASP.NET开发人员把磁盘上的文件通过流的方式上传并且可以监视上传进度 .它是开源的且在 Mono''s XSP/mod_mo ...

  9. ASP.NET Web程序设计——FileUpload文件上传控件

    FileUpload文件上传控件 主要功能:向指定的目录上传文件 控件包括:一个文本框 一个浏览按钮 属性 说明 HasFile 控件是否含有将要上传的文件 FileName 上传文件的文件名 Sav ...

  10. 文件上传控件 自定义样式

    文件上传控件<input type="file"/>在不同的浏览器下,显示为不同的样式,并且很难随着不同的设计而进行对应变化,这里将实现一种jquery插件的方法,实现 ...

最新文章

  1. 兰大博士神论文: 我和同门亲师妹是如何走到一起的?
  2. CVPR 2021 | 任何人都能“不讲武德”,姿态可控的语音驱动说话人脸
  3. 三星GT-I9308 Galaxy SIII 移动定制机 root方法 (亲测可用)
  4. python3.5下载-Python3.5.2
  5. 对服务器系统性能的诊断思路和方法,服务器端软件性能分析和诊断方法研究
  6. 成功将用intelli idea 建立的项目打包成jar文件,并在Linux上成功运行
  7. 微信小程序onLoad与onShow的区别
  8. String案例 获取一个字符串在另一个字符串中出现的次数(两种方法)
  9. Matlab Tricks(十七)—— 使用 Latex
  10. 时间选择器Android-PickerView的使用
  11. cad线性标注命令_CAD线性标注快捷键是什么,怎么使用
  12. 2022腾讯云学生服务器价格申请认证及购买攻略
  13. 学习笔记【机器翻译评测指标】
  14. 小时候玩过的游戏之十八——丢沙包
  15. pycharm下载思维导图插件 idea mind map
  16. 即兴演讲的秘诀结构(一)
  17. 设置vs2107背景图片
  18. utc时间怎么转换北京时间?
  19. 常见的打印机无法打印问题
  20. Visual Studio 2015 Bowser Link的功能不停的向服务端发送请求

热门文章

  1. 计算机图形学在线作业,18春北交《计算机图形学》在线作业一-2
  2. 打包的时候不把配置文件加进去_苹果软件打包签名原理
  3. abd shell关闭所有程序_带你进一步了解“终端”Shell
  4. linux线程的理解,linux线程与进程的理解
  5. 发卡网shell漏洞_Apache Tomcat文件包含漏洞(CVE-2020-1938)复现
  6. python中的numpy库有什么优缺点_Python中Numpy库的基础知识点
  7. 新年2021HTML,2021年了,来一段新年快乐的挂件源码
  8. UI设计教程学习分享:APP布局
  9. Java千百问_05面向对象(013)_泛型如何使用
  10. Day1_HTML_表单标记