博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大文件上传 进度条显示 (仿csdn资源上传效果)
阅读量:6230 次
发布时间:2019-06-21

本文共 4339 字,大约阅读时间需要 14 分钟。

浏览-选择文件-点击 “上传 ”后,效果如下:

弹出透明UI遮罩层 并显示上传这个过程 我这里设置太透明了 效果不是很立体

曾祥展

文件结构如图:

曾祥展

 

说明:用到“高山来客”的大文件上传组件

以及Newtonsoft.Json.dll Json字符串反序列化为对象

jquery.blockUI.js 弹出透明遮罩层 

jquery.form.js   表单验证Ajax提交 

参照了“蚂蚁飞了”的文章 多谢多谢 

 

 

HTML:

文件上传进度条

文件上传进度条

文件上传进度条

文件上传进度条

文件上传进度条

文件上传进度条

文件上传进度条

 
 
 
 
 
 
var inte;$(function() {$('#uploadForm').submit(function() {    return false;});$('#uploadForm').ajaxForm({ //这里调用jquery.form.js表单注册方法    beforeSubmit: function(a, f, o) {
//提交前的处理 o.dataType = "json"; $('#uploadfield').block({ message: $('#ui'), css: { width: '300px', border: '#b9dcfe 1px solid',padding: '0.5em 0.2em' } }); inte = self.setInterval("getprogress()", 500); }});$('#btn_cancel').click(function() { var uploadid = $("#UploadID").val(); $.ajax({ type: "POST", dataType: "json", async: false, //ajax的请求时同步 只有一个线程 url: "upload_ajax.ashx", data: "UploadID=" + uploadid + "&cancel=true", success: function(obj) { $("#output").html(obj.msg); inte = self.clearInterval(inte); $('#uploadfield').unblock(); } });});});function getprogress() {var uploadid = $("#UploadID").val()$.ajax({ type: "POST", dataType: "json", async: false, url: "upload_ajax.ashx", data: "UploadID=" + uploadid, success: function(obj) { var p = obj.msg.Readedlength / obj.msg.TotalLength * 100; var info = " 当前上传文件:" + obj.msg.CurrentFile; info += "
" + obj.msg.FormatStatus + ":" + obj.msg.Status; info += "
文件大小:" + obj.msg.TotalLength; info += "
速度:" + obj.msg.FormatRatio; info += "
剩余时间:" + obj.msg.LeftTime; $("#output").html(info); $("#progressbar").progressbar({ value: 0 }); //初始化 $("#progressbar").progressbar("option", "value", p); $("#progressbar div").html(p.toFixed(2) + "%"); $("#progressbar div").addClass("percentText"); if (obj.msg.Status == 4) { inte = self.clearInterval(inte); $('#uploadfield').unblock(); } }});}
 
 
 
 
 
 
 
<%@ WebHandler Language="C#" Class="progressbar" %>using System;using System.Web;using BigFileUpload;//大文件引用命名空间using Newtonsoft.Json;//对象到JSON的相互转换using System.Text.RegularExpressions;//正则public class progressbar : IHttpHandler {    private string template = "{
{statue:'{0}',msg:{1}}}"; public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; try { string guid = context.Request["UploadID"]; string cancel =context.Request["cancel"]; UploadContext c = UploadContextFactory.GetUploadContext(guid); if (!string.IsNullOrEmpty(cancel)) { c.Abort=true; throw new Exception("用户取消"); } string json = Newtonsoft.Json.JsonConvert.SerializeObject(c); WriteResultJson(1, json, context,template); }catch (Exception err) { WriteResultJson(0, err.Message, context); } } public static void WriteResultJson(int resultno, string description, HttpContext context){ WriteResultJson(resultno, description, context, "{
{statue:'{0}',msg:'{1}'}}");}public static void WriteResultJson(int resultno, string description, HttpContext context, string template){ description = ClearBR(ReplaceString(description, "'", "|", false)); context.Response.Write(string.Format(template, resultno, description));}public static string ClearBR(string str){ Regex r = null; Match m = null; r = new Regex(@"(\r|\n)", RegexOptions.IgnoreCase); for (m = r.Match(str); m.Success; m = m.NextMatch()) { str = str.Replace(m.Groups[0].ToString(), @"\n"); } return str;}public static string ReplaceString(string SourceString, string SearchString, string ReplaceString, bool IsCaseInsensetive){ return Regex.Replace(SourceString, Regex.Escape(SearchString), ReplaceString, IsCaseInsensetive ? RegexOptions.IgnoreCase : RegexOptions.None);} public bool IsReusable { get { return false; } } }

大家有什么问题 可以在线多多交流!

附:源码打包下载 已经放到20楼了 需要的点击下载就行了!

    本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2010/01/14/1647866.html,如需转载请自行联系原作者

你可能感兴趣的文章
java添加录音,java录音程序
查看>>
php xml 没有报文头,解决php输出xml设置header头Content-type:text/xml的方法
查看>>
php简化URL路径,php – 修改(简化)主题标题以便在url中显示
查看>>
php设计的个人页面成品,PHP仿个人博客(1)数据库与界面设计
查看>>
php函数改变表格颜色,php把一个颜色变深的函数示例开发详解
查看>>
go php 组合,Go语言组合和方法集
查看>>
matlab求图像峰度与斜度,python中的图像偏斜和峰度
查看>>
php 身份认证 claim,安全性 – 使用PHP对/ etc / shadow对用户进行身份验证的最安全方法?...
查看>>
oracle中sql中文乱码,oracle中文字符乱码终极解决
查看>>
oracle存储过程俩表查询,oracle存储过程查询多表的有关问题
查看>>
oracle中zh_concat的用法,Oracle内部函数 wmsys.wm_concat 替换办法及思考
查看>>
oracle10 冷恢复到11g,oracle 11g数据库冷备与恢复
查看>>
oracle solaris cluster 4,甲骨文推出Oracle Solaris Cluster 4.0
查看>>
oracle java web console,对 Oracle Java Web Console 软件进行故障排除
查看>>
oracle 11g 冗余,Oracle 11gR2 – 当2个故障组中的1个发生故障时,如何从正常冗余中恢复...
查看>>
php webservice 证书,PHP WebService客户端验证
查看>>
linux杀掉cpu使用率高的进程,linux – 在X时间后杀死CPU占用率高的进程?
查看>>
linux驱动被哪些进程使用,linux中驱动异步通知应用程序的方法
查看>>
linux浏览器联网输不了密码,Ubuntu下使用chrome浏览器每次打开都需要输入密码的解决...
查看>>
linux .最新 内核,求问Linux最新内核版本以及发布日期。
查看>>