文档章节

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
CKFinder根据用户设置权限,不同用户有自己的私有的、独立的文件夹

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

随智阔
2013/07/09
0
0
javaweb开发之处理表单上传文件和文件下载

一、基于表单的上传文件 1. enctype属性 当表单需要上传文件时,需指定表单 enctype 的值为 multipart/form-data。 在 form 元素的语法中,enctype 属性指定将数据发送到服务器时浏览器使用的...

小米米儿小
2013/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux运维人员必会运维工具

linux运维人员必会开源运维工具体系 说明:不同的技术人员,不同的阶段确定知识边界非常重要,否则,就像马拉车,不知道终点在哪,累死也达不到目标。例如拿8K要学多少,拿15K要学多少。一个...

寰宇01
24分钟前
2
0
10大PHP比特币开源项目

如果你是一个Phper,如果你希望学习区块链,那么本文列出的 10个开源的Php比特币项目,将有助于你了解在自己的应用中 如何加入对比特币的支持。 如果你希望快速掌握使用Php对接比特币钱包的方...

汇智网教程
45分钟前
1
0
springclould feign客户端添加全局参数

用springclould feign作为调用服务的客户端,一般来说参数可以写在feignclient的方法参数里 有时需要所有feign请求都统一添加一些参数,例如token用于鉴权等,可以这样做: 添加一个配置类,...

canneljls
46分钟前
1
0
win32截屏并rgb24转yuv420

//最终f的内存布局为BGRA格式,需要保证buf长度足够(>w*h*4)void ScreenCap(void* buf, int w, int h){ HWND hDesk = GetDesktopWindow(); HDC hScreen = GetDC(hDesk); ......

styleman
今天
1
0
php输出mysql取出的中文为??的问题

解决方法: @ $db=new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_DB); $db->query("set names utf8");//添加此语句,可以解决问题...

Aomo
今天
1
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部