文档章节

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

h
 heiyexue
发布于 2014/06/15 21:17
字数 292
阅读 10
收藏 0
点赞 0
评论 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
jquery+php实现ajax单个上传

HTML部分 <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" src="jquery.form.js"></script> <div class="btn"> <span>添加附件</span> <inpu......

魏邪乎
2014/06/05
0
0
Java中的文件上传2(Commons FileUpload:commons-fileupload.jar)

相比上一篇使用Servlet原始去实现的文件上传(http://www.cnblogs.com/EasonJim/p/6554669.html),使用组件去实现相对来说功能更多,省去了很多需要配置和处理的地方。 常用的上传组件有如下...

easonjim
2017/03/18
0
0
解决weblogic下FileUpload类NoSuchMethodError问题

现象 在weblogic应用服务器下使用commons-fileuplad.jar上传文件的时候,报错: java.lang.NoSuchMethodError:org.apache.commons.fileupload.FileUpload.getItemIterator(Lorg/apache/common......

彭苏云
2014/01/20
0
0
commons-fileupload组件上传图片介绍

基于表单的文件上传 如果在表单中使用表单元素 <input type=“file” />,浏览器在解析表单时,会自动生成一个输入框和一个按钮,输入框可供用户填写本地文件的文件名和路径名,按钮可以让浏...

wumingyue
2012/08/29
0
0
Controller中servletFileUpload.parseRequest(request)解析为空

原因分析 首先我们来看下Spring mvc 中文件上传的配置 方式二 这里springMVC 都为我们封装好成自己的文件对象了,转换的过程就在我们所配置的CommonsMultipartResolver这个转换器里面下面再来...

抢地主
2017/11/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
1
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
3
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
1
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
1
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部