1. 引入bin文件 (可以到neatupload官网下载,也可以到教育厅申报系统中找)

2. 将控件加入到工具栏,在工具栏中点鼠标右键,如图:

3. 加入neatuplaod这个文件夹(可以到neatupload官网下载,也可以到教育厅申报系统中找)

4. Webconfig的配置(3个地方)

<configSections>配置节下配置:

<!--配置NeatUpload sectionGroup配置节-->

<sectionGroup name="system.web">

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

</sectionGroup>

<system.web>配置节下配置:

<!--配置NeatUpload neatUpload配置节-->

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

<providers>

<add name="FilesystemUploadStorageProvider"

type="Brettle.Web.NeatUpload.FilesystemUploadStorageProvider, Brettle.Web.NeatUpload" />

</providers>

</neatUpload>

<httpModules>配置节下配置:

<!--配置NeatUpload httpModules配置节-->

<!--如果不加这httpmodules,进度条不显示-->

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

5. 页面代码

<%@ Register Assembly="Brettle.Web.NeatUpload" Namespace="Brettle.Web.NeatUpload"TagPrefix="Upload" %><link href="../../../../NeatUpload/default.css" rel="stylesheet" type="text/css" /><script type="text/javascript" language="javascript">function ToggleVisibility(id, type) {el = document.getElementById(id);if (el.style) {if (type == 'on') {el.style.display = 'block';}else {el.style.display = 'none';}}else {if (type == 'on') {el.display = 'block';}else {el.display = 'none';}}}</script><Upload:InputFile ID="AttachFile" runat="server" /><asp:Button ID="btnAdd" runat="server" Text="上传" OnClientClick="ToggleVisibility('ProgressBar','on')"OnClick="btnAdd_Click" /><asp:Label ID="Label10" runat="server" Text="*最大上传为4M" ForeColor="Red"></asp:Label><div id="ProgressBar" style="display: none"><Upload:ProgressBar ID="pbProgressBar" runat='server' Inline="true" Width="800px"Height="50px" AllowTransparency="False"></Upload:ProgressBar></div>

6. 页面后台代码范例:

protected void btnAdd_Click(object sender, EventArgs e){if (!string.IsNullOrEmpty(AttachFile.FileName)){int ProjectID = this.CurrentProjectID;string FileName = this.AttachFile.FileName;//获取上传文件的文件名string FileNameExtenter =System.IO.Path.GetExtension(FileName).ToLower(); ;//获取扩展名if (AttachFile.FileContent.Length > 4096 * 1024 && AttachFile != null){Page.ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.Ticks.ToString(), "<script>alert('文件大于4M,不能上传')</script>");Stream Sr = AttachFile.FileContent;//创建数据流对象

Sr.Close();// this.Response.Write("<script language=javascript>alert('文件大于4M,不能上传!');history.go(-1);</script>");return;}if (AttachFile.FileContent.Length == 0){this.Response.Write("<script language=javascript>alert('空文件,不能上传!');history.go(-1);</script>");Stream Sr = AttachFile.FileContent;//创建数据流对象

Sr.Close();return;}if (AttachFile != null && FileName != null){if (FileNameExtenter == ".doc"){Stream Sr = AttachFile.FileContent;//创建数据流对象int upLength = Convert.ToInt32(AttachFile.ContentLength);byte[] b = new byte[upLength];//定义byte型数组

Sr.Read(b, 0, upLength); // 数据存放到b数组对象实例中,其中0代表数组指针的起始位置,uplength表示要读取流的长度(指针的结束位置)

Binary Content = new Binary(b);Attachment _attachment = new Attachment();_attachment.Entity = "ReportProject";_attachment.EntityID = ProjectID;_attachment.Content = Content;_attachment.FileName = FileName;_attachment.UsedFlag = 1;_attachment.Creator = this.CurrentProjectID.ToString();_attachment.CreateTime = System.DateTime.Now;_attachment.LastEditor = this.CurrentProjectID.ToString();_attachment.LastEditTime = System.DateTime.Now;DataContext.Attachment.InsertOnSubmit(_attachment);DataContext.SubmitChanges();this.gv.DataBind();Sr.Close();Page.ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.Ticks.ToString(), "<script>alert('附件上传成功!请检查!')</script>");this.gv.DataBind();//ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), DateTime.Now.Ticks.ToString(), "<script>window.alert('附件上传成功!');window.location.href=window.location.href;</script>", false);//ProgressBar.Visible = false;return;}else{this.Response.Write("<script language=javascript>alert('不能上传word以外 文件!请先将文件将转换为word(后缀名必须为doc)形式再上传');history.go(-1);</script>");Stream Sr = AttachFile.FileContent;//创建数据流对象

Sr.Close();return;}}}else{this.Response.Write("<script language=javascript>alert('请选择上传文件');history.go(-1);</script>");return;}}//若要上传到本地文件中//代码:string path = Server.MapPath("~") + "\\File\\UpLoads\\" + Path.GetFileName(NewUpFile.PostedFile.FileName);NewUpFile.SaveAs(path);

7. 注意的地方

1>.当需要报错的时候,在报错的函数必须有

Stream Sr = AttachFile.FileContent;//创建数据流对象 Sr.Close();

看似多此一举,但是不写就会有错,

2> . 而且在进度条走完以后后台代码才会执行,故而如果文件过大,待文件上传完毕后提示文件过大会影响用户体验,这个问题待解决

转载于:https://www.cnblogs.com/lipeng0824/p/4339943.html

.Net neatupload上传控件实现文件上传的进度条相关推荐

  1. 使用Apache文件上传控件实现文件上传

    本文使用Apache提供的第三方文件上传控件进行文件上传 1.导入第三方commons-fileupload-1.3.2.jar和commons-io-2.5.jar包 2.页面form标签需添加en ...

  2. 在EasyUI项目中使用FileBox控件实现文件上传处理

    我在较早之前的随笔<基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用>Web框架介绍中介绍了基于Uploadify的文件上传操作,免费版本用的是J ...

  3. iview上传控件upload,手动上传控制

    iview上传控件upload,手动上传控制 场景:实现不通过action地址自动上传,而是通过点击上传按钮手动上传的实现. 效果图: 以下是完整的代码: <template><di ...

  4. Js获取file上传控件的文件路径总结

    总结一个获取file上传控件文件路径的方法 firefox由于保护机制只有文件名,不能获取完整路径. document.getElementById('file').onchange = functi ...

  5. WPF 控件自定义模板之:圆形进度条

    ▪ 前言 项目开发需要,需要做一个圆形的进度条,但是发现 WPF 自带的进度条控件 ProgressBar 无法直接变成圆形,经过不停的Baidu.Google,终于找到了基于 ProgressBar ...

  6. html 可调节进度条控件,jQuery简单实用的轻量级进度条插件

    jQMeter是一款简单实用的轻量级进度条jQuery插件,它可以显示为水平或垂直进度条,进度条加载时带有动画特效,你只需要简单的传入一些参数到jQMeter对象的构造函数中就可以完成你想要的进度条效 ...

  7. java 图片上传控件_Javashop 图片上传插件使用指南

    一.概述 Javashop 图片上传插件是一款基于WebUploader插件所封装的上传图片插件. 可用于快速生成上传图片页面,有如下特点: 基于freemarker指令模式所编写,只需一个指令,并且 ...

  8. jquery文件上传控件 Uploadify

    基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...

  9. 根据FileUpload控件名获取上传文件(大小)类型

    /// <summary>     /// 根据FileUpload控件名获取上传文件(大小)类型     /// </summary>     /// <param n ...

最新文章

  1. oracle 连续次数,如何求字段连续出现的次数?
  2. CentOS服务器上部署 oracle10gr2
  3. 使用SonarCloud对.NET Core项目进行静态代码分析
  4. vscode go开发staticcheck配置
  5. flutter去掉输入框最大字数显示
  6. Flutter 基础篇-所有知识点架构
  7. Java毕业设计-电影影评管理系统
  8. 运维记之源码编译nfs-utils和rpcbind
  9. 【FXCG】美联储加息之际,新兴市场加息周期却接近尾声
  10. oracle数据库mgmt,19c rac数据库如何添加mgmt
  11. Shopnc之nginx安装
  12. python爬取今日头条图片
  13. 电脑中删掉的照片怎么恢复
  14. LWIP开发 | scoket | tcp | client
  15. c++ hashset的用法_c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
  16. C语言实现简单的登录注册功能
  17. STS配置MAVEN
  18. linux防火墙允许snmp端口号,Linux下用iptables完成snmp的端口映射
  19. 城堡传说3服务器维护,城堡传说3隐藏攻略大全
  20. CTreeCtrl用法

热门文章

  1. java 读取excel数据格式转换
  2. 秒懂设计模式之工厂方法模式(Factory Method Pattern)
  3. Xpath语法之谓语小记
  4. 手绘地图深度解析:类型、风格、功能、价值、制作流程、智慧导览
  5. 网络编程(CMD 窗口中通过局域网实现聊天对话)
  6. 谷歌人工智能责任:技术、人工智能、社会和文化 | Responsible AI at Google Research: Technology, AI, Society and Culture
  7. 备受瞩目 | Conflux频频亮相2019上海区块链国际周
  8. 学习笔记----SLAM的概论与架构
  9. 使用kettle采集excel表格中的数据
  10. Lemur的参数文件