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 >  *  && 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 == )

{

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, , 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 = ;

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

.Net neatupload上传控件实现文件上传的进度条的更多相关文章

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

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

  2. 利用bootsrap控件 实现文件上传功能

    源代码实例:https://github.com/kartik-v/bootstrap-fileinput 一.jsp页面 <%@ page language="java" ...

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

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

  4. jquery本地上传预览扩展(隐藏上传控件单击图片上传支持ie!!)

    我用到的原材料地址:http://www.cnblogs.com/leejersey/p/3660202.html 修改后: /// <reference path="../../Js ...

  5. 037. asp.netWeb用户控件之五使用用户控件实现文件上传功能

    fileUpload.ascx代码: <%@ Control Language="C#" AutoEventWireup="true" CodeFile= ...

  6. WebForm之FileUpload控件(文件上传)

    FileUpload控件要与Button.LinkButton.ImageButton配合使用 FileUpload控件的方法及属性: 1.SaveAs("要上传到服务器的绝对路径" ...

  7. cocos2d-x视频控件VideoPlayer的用户操作栏进度条去除(转载)

    目前遇到两个问题: (1)视频控件移除有问题,会报异常. (2)视频控件有用户操作栏,用户点击屏幕会停止视频播放. 对于第一个问题,主要是移除控件时冲突引起的,目前简单处理是做一个延时处理,先stop ...

  8. 因用了NeatUpload大文件上传控件而导致Nonfile portion > 4194304 bytes错误的解决方法

    今天遇到一个问题,就是“NeatUpload大文件上传控件而导致Nonfile portion > 4194304 bytes错误”,百度后发现了一个解决方法,跟大家分享下: NeatUploa ...

  9. 百度 flash html5自切换 多文件异步上传控件webuploader基本用法

    双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name=& ...

随机推荐

  1. Fusioncharts使用说明

    背景 最近由于工作需要,再次接触到了Fusioncharts,但也有不足之处,现在官网上似乎是不支持flash的版本了,只能看到html5相关的javascript版本,无奈再次从网上搜索到了一些别人 ...

  2. C++Primer 第十九章

    //1.控制内存分配: //A:某些应用程序对内存分配有特殊的需求,因此我们无法将标准内存管理机制直接应用于这些程序.它们常常需要自定义内存分配的细节,比如使用关键字new将对象放置在特定的内存空间中 ...

  3. Swift游戏实战-跑酷熊猫 05 踩踏平台是怎么炼成的

    这节内容我们一起学习下随机长度的踩踏平台的原理是怎么样的. 要点: 平台的组成 我们的平台由3部分组成 左: 中: 右: 其中中间部分是可以无缝衔接的,下面就是两个中间部分衔接在一起 要任何长度的平台 ...

  4. CSS 中文字体的英文名称

    宋体 SimSun 黑体 SimHei 微软雅黑 Microsoft YaHei 微软正黑体 Microsoft JhengHei 新宋体 NSimSun 新细明体 PMingLiU 细明体 Ming ...

  5. [转]JqueryEasyUI教程入门篇

    什么是jQueryEasyUI? JqueryUI是一组基于jQuery的UI插件集合 学习jQueryEasyUI的条件? 必须掌握Jquery的基本语法知识 jQueryEasyUI的特点? 1. ...

  6. 利用最新版的RubyMine2016.2开发Ruby On Rails 程序

    经过我的前两篇博文 ”Ruby On Rails环境搭建“ 和”Ruby On Rails 环境搭建MySQL数据库连接“ 我们已经具备了开发Ruby On Rails程序的一切要素,但是天天对着do ...

  7. Java基础(8):方法重载的4个依据与例子

    判断方法重载的依据: 1. 必须是在同一个类中 2. 方法名相同 3. 方法参数的个数.顺序或类型不同 4. 与方法的修饰符或返回值没有关系 运行结果:

  8. struts_19_对Action中所有方法、某一个方法进行输入校验(手工编写代码实现输入校验)

    对所有方法进行校验1.通过手工编写代码的形式实现 需求:用户名:不能为空手机号:不能为空,并且要符合手机号的格式1,3/5/8,后面是9个数字 第01步:导包 第02步:配置web.xml <? ...

  9. drds 分库表的创建速记

    关键词 :dbpartition by hash(`INVESTOR_APPLY_ID`) 格式 :dbpartition by hash(分库字段) 创建例子: CREATE TABLE `BB_J ...

  10. struts2校验の实现

    1.JSP <%@ page contentType="text/html; charset=utf-8" language="java" errorPa ...