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上传控件实现文件上传的进度条的更多相关文章
-
在EasyUI项目中使用FileBox控件实现文件上传处理
我在较早之前的随笔<基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用>Web框架介绍中介绍了基于Uploadify的文件上传操作,免费版本用的是J ...
-
利用bootsrap控件 实现文件上传功能
源代码实例:https://github.com/kartik-v/bootstrap-fileinput 一.jsp页面 <%@ page language="java" ...
-
Js获取file上传控件的文件路径总结
总结一个获取file上传控件文件路径的方法 firefox由于保护机制只有文件名,不能获取完整路径. document.getElementById('file').onchange = functi ...
-
jquery本地上传预览扩展(隐藏上传控件单击图片上传支持ie!!)
我用到的原材料地址:http://www.cnblogs.com/leejersey/p/3660202.html 修改后: /// <reference path="../../Js ...
-
037. asp.netWeb用户控件之五使用用户控件实现文件上传功能
fileUpload.ascx代码: <%@ Control Language="C#" AutoEventWireup="true" CodeFile= ...
-
WebForm之FileUpload控件(文件上传)
FileUpload控件要与Button.LinkButton.ImageButton配合使用 FileUpload控件的方法及属性: 1.SaveAs("要上传到服务器的绝对路径" ...
-
cocos2d-x视频控件VideoPlayer的用户操作栏进度条去除(转载)
目前遇到两个问题: (1)视频控件移除有问题,会报异常. (2)视频控件有用户操作栏,用户点击屏幕会停止视频播放. 对于第一个问题,主要是移除控件时冲突引起的,目前简单处理是做一个延时处理,先stop ...
-
因用了NeatUpload大文件上传控件而导致Nonfile portion >; 4194304 bytes错误的解决方法
今天遇到一个问题,就是“NeatUpload大文件上传控件而导致Nonfile portion > 4194304 bytes错误”,百度后发现了一个解决方法,跟大家分享下: NeatUploa ...
-
百度 flash html5自切换 多文件异步上传控件webuploader基本用法
双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name=& ...
随机推荐
-
XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效)[转]
目前在XCode上开发的iOS程序只能在模拟器Simulator中运行,如果要放到真机上测试,需要苹果官方认证的开发者账号,购买开发者证书iDP,99美金一年啊!!! 作为刚开始学习iOS编程的菜鸟, ...
-
SVN的使用方法
SVN的使用方法: 新建文件夹:文件夹1 在文件夹上点击右键--选择 SVN Checkout--弹出checkout窗口 下载文件的url获取:打开SVN--在要下载的文件上点击右键--点击Copy ...
-
python目前最好用的IDE——pycharm
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制. ...
-
AJAX 在手机上用时
Response.ContentType = "text/html; text/plain; charset=UTF-8";
-
闲聊 Exp/Imp 命令使用
1.Exp/Imp 命令可用的参数: 2.userid 参数必须跟在 Exp/Imp 命令的后面,可以省略,如 Exp Userid=用户名/密码@数据库实例名 或者 Exp 用户名/密码@数据库实例 ...
-
ES6项目构建(babel+gulp+webpack)
(一)基础架构 (二)任务自动化(gulp) (三)编译工具(babel,webpack) (四)代码实现 一.基础构架 1.app : 放置前端代码 css : css文件 js : js文件 cl ...
-
9、BOM (浏览器对象模型)
1.认识BOM js 三个部分: 1.ECMAScript标准 ECMA5 ECMA6 2.BOM Browser Object Model 浏览器对象模型 3.DOM 文档对象类型 window对象 ...
-
PHP 生成验证码(+图片没有显示的解决办法)
今天有需要用到验证码,就敲了个,毕竟用途比较广,所以打算把代码留下来,以后肯定用得上的.当然,今天在做的时候也是有一些问题的,分享出来吧,记录自己所犯的错误,避免以后再掉坑里. 先给个效果图(下面的真 ...
-
51Nod 最小公倍数之和V3
这题公式真tm难推……为了这题费了我一个草稿本…… woc……在51Nod上码LaTeX码了两个多小时…… 一开始码完了前半段,刚码完后半段突然被51Nod吃了,重新码完后半段之后前半段又被吃了,吓得 ...
-
深入理解C++中的异常处理机制
异常处理 增强错误恢复能力是提高代码健壮性的最有力的途径之一,C语言中采用的错误处理方法被认为是紧耦合的,函数的使用者必须在非常靠近函数调用的地方编 写错误处理代码,这样会使得其变得笨拙和难以使用.C ...