.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 > 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上传控件实现文件上传的进度条相关推荐
- 使用Apache文件上传控件实现文件上传
本文使用Apache提供的第三方文件上传控件进行文件上传 1.导入第三方commons-fileupload-1.3.2.jar和commons-io-2.5.jar包 2.页面form标签需添加en ...
- 在EasyUI项目中使用FileBox控件实现文件上传处理
我在较早之前的随笔<基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用>Web框架介绍中介绍了基于Uploadify的文件上传操作,免费版本用的是J ...
- iview上传控件upload,手动上传控制
iview上传控件upload,手动上传控制 场景:实现不通过action地址自动上传,而是通过点击上传按钮手动上传的实现. 效果图: 以下是完整的代码: <template><di ...
- Js获取file上传控件的文件路径总结
总结一个获取file上传控件文件路径的方法 firefox由于保护机制只有文件名,不能获取完整路径. document.getElementById('file').onchange = functi ...
- WPF 控件自定义模板之:圆形进度条
▪ 前言 项目开发需要,需要做一个圆形的进度条,但是发现 WPF 自带的进度条控件 ProgressBar 无法直接变成圆形,经过不停的Baidu.Google,终于找到了基于 ProgressBar ...
- html 可调节进度条控件,jQuery简单实用的轻量级进度条插件
jQMeter是一款简单实用的轻量级进度条jQuery插件,它可以显示为水平或垂直进度条,进度条加载时带有动画特效,你只需要简单的传入一些参数到jQMeter对象的构造函数中就可以完成你想要的进度条效 ...
- java 图片上传控件_Javashop 图片上传插件使用指南
一.概述 Javashop 图片上传插件是一款基于WebUploader插件所封装的上传图片插件. 可用于快速生成上传图片页面,有如下特点: 基于freemarker指令模式所编写,只需一个指令,并且 ...
- jquery文件上传控件 Uploadify
基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...
- 根据FileUpload控件名获取上传文件(大小)类型
/// <summary> /// 根据FileUpload控件名获取上传文件(大小)类型 /// </summary> /// <param n ...
最新文章
- oracle 连续次数,如何求字段连续出现的次数?
- CentOS服务器上部署 oracle10gr2
- 使用SonarCloud对.NET Core项目进行静态代码分析
- vscode go开发staticcheck配置
- flutter去掉输入框最大字数显示
- Flutter 基础篇-所有知识点架构
- Java毕业设计-电影影评管理系统
- 运维记之源码编译nfs-utils和rpcbind
- 【FXCG】美联储加息之际,新兴市场加息周期却接近尾声
- oracle数据库mgmt,19c rac数据库如何添加mgmt
- Shopnc之nginx安装
- python爬取今日头条图片
- 电脑中删掉的照片怎么恢复
- LWIP开发 | scoket | tcp | client
- c++ hashset的用法_c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
- C语言实现简单的登录注册功能
- STS配置MAVEN
- linux防火墙允许snmp端口号,Linux下用iptables完成snmp的端口映射
- 城堡传说3服务器维护,城堡传说3隐藏攻略大全
- CTreeCtrl用法
热门文章
- java 读取excel数据格式转换
- 秒懂设计模式之工厂方法模式(Factory Method Pattern)
- Xpath语法之谓语小记
- 手绘地图深度解析:类型、风格、功能、价值、制作流程、智慧导览
- 网络编程(CMD 窗口中通过局域网实现聊天对话)
- 谷歌人工智能责任:技术、人工智能、社会和文化 | Responsible AI at Google Research: Technology, AI, Society and Culture
- 备受瞩目 | Conflux频频亮相2019上海区块链国际周
- 学习笔记----SLAM的概论与架构
- 使用kettle采集excel表格中的数据
- Lemur的参数文件