文档章节

fileupload上传显示进度(未测试)

h
 heiyexue
发布于 2014/06/15 21:17
字数 292
阅读 11
收藏 0
  1. <html xmlns="http://www.w3.org/1999/xhtml" >  
  2. <head runat="server">  
  3.     <title>无标题页</title>  
  4.     <mce:script type="text/javascript" src="jquery-1.4.2.min.js" mce_src="jquery-1.4.2.min.js"></mce:script>  
  5.      <mce:script type="text/javascript"><!--  
  6.     function ajaxGet()  
  7.     {  
  8.         $.post("GetSessionHandler.ashx", { date: new Date() },  
  9.                 function(data) {  
  10.                     var num = parseInt(data);                      
  11.                     if ((!isNaN(num)) && (num < 100)) {  
  12.                         $("#result").text(num + "%");  
  13.                         window.setTimeout(ajaxGet, 1000);  
  14.                     }  
  15.                     else if ((!isNaN(num)) && (num == 100)) {  
  16.                         $("#result").text("100%");  
  17.                         window.setTimeout('$("#result").text("发送已完成");', 1000);  
  18.                     }  
  19.                 }  
  20.             );  
  21.     }  
  22.       
  23. // --></mce:script>  
  24. </head>  
  25. <body>  
  26.     <form id="form1" runat="server">  
  27.    <asp:FileUpload ID="file" runat="server" />  
  28.     <asp:Button ID="btnOK" runat="server" Text="上传" onclick="btnOK_Click" />      
  29.     <div id='result'></div>  
  30.     </form>  
  31. </body>  
  32. </html>  
[c-sharp]  view plain copy
  1. 后台:  
  2.   protected void btnOK_Click(object sender, EventArgs e)  
  3.         {  
  4.             if (file.PostedFile != null && file.PostedFile.ContentLength != 0)  
  5.             {  
  6.                 Session["Schedule"] = "0";  
  7.                 //启动一个线程  
  8.                 Thread th = new Thread(new ThreadStart(Upload));  
  9.                 th.Start();  
  10.                 //注册客户端脚本   
  11.                 ClientScript.RegisterStartupScript(this.GetType(), "ajaxGet""ajaxGet()"true);  
  12.             }  
  13.         }  
  14.         private void Upload()  
  15.         {  
  16.             var postfile = file.PostedFile;  
  17.             int length = postfile.ContentLength;  
  18.             string path = Server.MapPath(@"~/upload");  
  19.             int UploadLength = 0;  
  20.             int bufferSize = 10000;  
  21.             byte[] buffer = new byte[bufferSize];  
  22.             string fileName = Path.Combine(path, string.Format("{0}{1}", DateTime.Now.ToString("yyyyMMddhhmmss"), Path.GetExtension(postfile.FileName)));  
  23.             using (FileStream fs = new FileStream(fileName, FileMode.Create))  
  24.             {  
  25.                 while (UploadLength < length)  
  26.                 {  
  27.                     int bytes = postfile.InputStream.Read(buffer, 0, bufferSize);  
  28.                     fs.Write(buffer, 0, bytes);  
  29.                     UploadLength += bytes;  
  30.                     Session["Schedule"] = (int)Math.Ceiling((double)UploadLength / (double)length * 100);  
  31.                     Thread.Sleep(100);  
  32.                 }  
  33.             }  
  34.             Session["Schedule"] = 100;  
  35.         }  
[c-sharp]  view plain copy
  1. 一般处理文件代码如下:  
  2. public class GetSessionHandler : IHttpHandler,System.Web.SessionState.IRequiresSessionState  
  3.     {  
  4.         public void ProcessRequest(HttpContext context)  
  5.         {  
  6.             context.Response.ContentType = "text/plain";  
  7.             String tempStr = (context.Session["Schedule"] ?? "0").ToString();  
  8.             context.Response.Write(tempStr);  
  9.         }  
  10.         public bool IsReusable  
  11.         {  
  12.             get  
  13.             {  
  14.                 return false;  
  15.             }  
  16.         }  
  17.     }  
  18. 原帖:http://topic.csdn.net/u/20100727/10/6710495c-a47c-45ab-8cf2-bd8f57ac5d78.html  

© 著作权归作者所有

共有 人打赏支持
h
粉丝 2
博文 85
码字总数 78924
作品 0
哈尔滨
私信 提问
Commons FileUpload

1 概述 Commons FileUpdate包很容易为你的Servlet和web应用程序添加健壮的、高性能的文件上传功能。 FileUpload解析遵循RFC 1876(在HTML中基于表单的文件上传)HTTP请求。即,如果一个HTTP请...

Leech
2015/08/02
0
0
spring mvc文件上传实现进度条

文件上传应该大部分人都接触过,一般都是基于commons-fileupload组件来实现,SpringMVC的文件上传功能也是在commons-fileupload组件提供的功能上面做了一些包装功能,使文件上传开发更容易方...

小天120
2014/02/10
0
20
struts2 上传文件添加进度条

为了给用户更好体验,最进在struts2添加了上传进度条让用户知道上传过程时间,增加有好度。 由于以前做个 文件上传 没有用过 组件进行解析,直接用servlet 解析的,而现在 struts2 框架使用 ...

hlevel
2013/08/14
0
6
Apache Struts最新漏洞 远程代码执行漏洞预警 2018年11月08日

2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新的漏洞,影响范围较广,低于Apache Struts 2.3.35的版本都会受到...

网站安全
11/08
0
0
CKFinder根据用户设置权限,不同用户有自己的私有的、独立的文件夹

CKFinder 默认情况下多个用户共用同一个图片目录。所有上传的图片和Flash全部保存在同一个文件夹(默认为 userfiles)内。 现在想实现: 第1个需求:不同用户有自己的私有的、独立的文件夹;...

随智阔
2013/07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(7.4)HDFS的java客户端API(流处理方式)

博主上一篇博客分享了namenode和datanode的工作原理,本章节将继前面的HDFS的java客户端简单API后深度讲述HDFS流处理API。 场景:博主前面的文章介绍过HDFS上存的大文件会成不同的块存储在不...

em_aaron
昨天
2
0
聊聊storm的window trigger

序 本文主要研究一下storm的window trigger WindowTridentProcessor.prepare storm-core-1.2.2-sources.jar!/org/apache/storm/trident/windowing/WindowTridentProcessor.java public v......

go4it
昨天
6
0
CentOS 生产环境配置

初始配置 对于一般配置来说,不需要安装 epel-release 仓库,本文主要在于希望跟随 RHEL 的配置流程,紧跟红帽公司对于服务器的配置说明。 # yum update 安装 centos-release-scl # yum ins...

clin003
昨天
8
0
GPON网络故障处理手册

导读 为了方便广大网络工作者工作需要,特搜集以下GPON网络处理流程供大家学习参考。开始—初步定为故障—检查光纤状况—检查ONU状态--检查设备运行状态—检查设备数据配置—检查上层设备状态...

问题终结者
昨天
9
0
MariaDB、Apache安装

11月12日任务 11.6 MariaDB安装 11.7/11.8/11.9 Apache安装 1.MariaDB安装 cd /usr/local/src wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/......

hhpuppy
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部