.Net neatupload上传控件实现文件上传的进度条
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=& ...
随机推荐
- Redis:安装
此篇文章并不介绍linux下安装方法.围绕windows安装而介绍 两种安装方式: 1)下载压缩包,解压后(运行起来有个窗口,关闭掉就不在运行),没有windows服务被注册:可以只用命令在cmd将其 ...
- Vue.js实例练习
最近学习Vue.js感觉跟不上节奏了,Vue.js用起来很方便. 主要实现功能,能添加书的内容和删除.(用的Bootstrap的样式)demo链接 标题用了自定义组件,代码如下: components ...
- 提高神经网络的学习方式Improving the way neural networks learn
When a golf player is first learning to play golf, they usually spend most of their time developing ...
- java io读书笔记(5) Writing Bytes to Output Streams
outputstream类是所有的字符输出类的父类,他是一个抽象类. 对于OutputStream类来说,其最基础的方法就是:write(). public abstract void write(i ...
- [原创] hadoop学习笔记:hadoopWEB监控
笔者安装单机版本 要想实现hadoopweb页面的监控,需要解决以下几个问题 1.关闭linux的防火墙:#service iptables stop 2.将linuxSE设置为disabled:#v ...
- ubuntu安装jdk遇到的问题:cannot execute binary file
安装完jdk,配置好环境变量出现如下状况: cannot execute binary file 问题原因: jdk的位数与ubuntu的系统位数不一致 jdk 64位 ubuntu 32位 然后通过 ...
- c#经典俄罗斯方块 vs2012开发
把网上两个开源的俄罗斯方块,整合到一起了,开发环境vs2012+.net 4.0,有问题.建议可以加群沟通哦 复古的 c#写的一个俄罗斯方块小游戏,友好的人机交互,具体功能如下: 1.游戏分七个关卡, ...
- 【GDI+】 线段 文字 定位的问题
遇到一个看起来很简单的问题: 给定两个点,和一组文字,希望文字显示在线的附近并且居中显示.期望像这样的效果 进一步的抽象是: 1.根据文字的长度和高度,以及两个点,来获得文字的定位点(左上角点)的 2 ...
- Openstack的镜像上传原理
openstack的horizon的上传镜像流程 通过html的form表单上传文件 先上传到horizon指定的临时目录,存储起来 通过glance-api请求接口 实际上glance-api也是提 ...
- java总结第二次(剩余内容)//类和对象1
7.成员变量和局部变量 成员变量:在类中定义,用来描述对象将要有什么 局部变量:在类的方法中定义,在方法中保存临时数据 区别:作用域不同 局部变量的作用域仅限于定义它的方法 成员变量的作用域在整个类内 ...