以下的仅仅是学习而已,记录以下笔记

1 springmvc 进度条,要实现ProgressListener接口,实现方法update(long readLength, long contextLength, int items)

代码如下:

public class mProgressListener implements ProgressListener {

String pCount=null;
int sa=0;
public String getpCount() {
return pCount;
} /* 第一个参数代表当前已读了多少字节,第二个参数代表整个表单的长度也可以当做文件的总大小,第三个参数是代表已解析到第几个(这里对你不重要) */
@Override
public void update(long readLength, long contextLength, int items) {
double result = (readLength / (double)1048576) / (contextLength / (double)1048576);
if(contextLength<0){ }else{
long read=readLength/1048576;
long context=contextLength/1048576;
sa=(int)Math.round((100.0)*read/context);
} //DecimalFormat df = new DecimalFormat("#.00");
//System.out.println(read+"/"+context+"="+sa+":contextLength="+contextLength); NumberFormat nf = NumberFormat.getPercentInstance();
// System.out.println((readLength / (double)1048576) + "/" +( contextLength / (double)1048576)
// + "=" + nf.format(result)); pCount =sa+""; } }

2,重写类CommonsMultipartResolver

public class CommonsMultipartResolver extends
org.springframework.web.multipart.commons.CommonsMultipartResolver { HttpServletRequest request; @Override
protected FileUpload newFileUpload(FileItemFactory fileItemFactory) { ServletFileUpload upload = new ServletFileUpload(fileItemFactory);
upload.setSizeMax(-1);
if (request != null) {
mProgressListener pListener = new mProgressListener();
upload.setProgressListener(pListener);
request.getSession().setAttribute("pListener", pListener);
} return upload;
} @Override
public MultipartHttpServletRequest resolveMultipart(HttpServletRequest arg0)
throws MultipartException {
this.request = arg0;
return super.resolveMultipart(arg0);
}
}

3,spring-servlet.xml 修改为

<!-- 支持上传文件 -->
<bean id="multipartResolver" class="com.glass.test.CommonsMultipartResolver">
<property name="maxUploadSize" value="-1" />
</bean>

4,jsp界面运用ajax实现数据的互交,

用到AjaxFileUpload.js 实现文件的异步传输

<script type="text/javascript">

$(function(){

$("#submin").click(function(){

  $.ajaxFileUpload({
    url: 'upLoadProgress.htm',
    type: 'post',
    secureuri: false, //一般设置为false
    fileElementId: 'file', // 上传文件的id、name属性名
    dataType: 'text', //返回值类型,一般设置为json、application/json
    // elementIds: elementIds, //传递参数到服务器
    success: function(data, status){
    layer.alert(data);
    },
      error: function(data, status, e){
    alert(e);
    }
  });
// $("#pform").submit(); // $("$pCount").text("51465") ; startProgress();
return false; });
function startProgress(){
$.ajax({
type: "post",
dataType: "text",
url: "testProgress.htm",
data: "",
success: function (data) {//data是没有小数的整型,
var num= parseInt(data)*0.01;
$("#flownum").text(data+"%") ;//显示到界面
$("#pCount").attr("width",(1000*num)+"px");
if(num<1){
setTimeout(startProgress(),2000);
}
// layer.alert(data);
} });}
}); </script>

4,Controller 接收上传

5,Progress的controller如下:

@RequestMapping(value ="testProgress")
public void progress(HttpServletResponse response,
HttpServletRequest request) {
mProgressListener pListener= (mProgressListener) request.getSession().getAttribute("pListener");
setMessage(pListener.getpCount());//自己写的方法
Ajax(response);//自己写的方法 }

Spring mvc 上传进度条实现的更多相关文章

  1. spring定时任务-文件上传进度条

    spring定时任务 导依赖 <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --> <dep ...

  2. Spring MVC上传文件原理和resolveLazily说明

    问题:使用Spring MVC上传大文件,发现从页面提交,到进入后台controller,时间很长.怀疑是文件上传完成后,才进入.由于在HTTP首部自定义了“Token”字段用于权限校验,Token的 ...

  3. jQuery文件上传插件jQuery Upload File 有上传进度条

    jQuery文件上传插件jQuery Upload File 有上传进度条 jQuery文件上传插件jQuery Upload File,插件使用简单,支持单文件和多文件上传,支持文件拖拽上传,有进度 ...

  4. Spring MVC上传文件

    Spring MVC上传文件 1.Web.xml中加入 <servlet> <servlet-name>springmvc</servlet-name> <s ...

  5. HTML5矢量实现文件上传进度条

    在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...

  6. 基于HT for Web矢量实现HTML5文件上传进度条

    在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...

  7. PHP中使用Session配合Javascript实现文件上传进度条功能

    Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP .4以前,实现这样的进度条并不容易 ...

  8. Spring MVC 上传文件

    Spring MVC上传文件需要如下步骤: 1.前台页面,form属性 method设置为post,enctype="multipart/form-data"  input的typ ...

  9. iOS_文件上传进度条的实现思路-AFNettworking

    iOS_文件上传进度条的实现思路-AFNettworking //要上传的文件名,在这里我使用当前日期做为文件的名称 NSString * fileName =[NSString stringWith ...

随机推荐

  1. 排序算法入门之冒泡排序及其优化(java实现)

    冒泡排序思想(从小到大): 比较相邻两个元素,如果第一个元素比第二个元素大,就交换他们的位置.第一趟,从第一个元素开始,第一个元素和第二个元素比较,如果第一个元素比第二个元素大,则交换位置:接下来比较 ...

  2. UML2.0

    一.系统过滤器使用说明 1.OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数.它有以下属性: Duration:缓存的时间,以秒为 ...

  3. memocache 分布式搭建

    memcached+magent实现memcached集群   首先说明下memcached存在如下问题 本身没有内置分布式功能,无法实现使用多台Memcache服务器来存储不同的数据,最大程度的使用 ...

  4. SpringMVC:数据绑定入门(二)

    1.为了实现所输入的数据格式与所需要的匹配该如何做到?例如:http://localhost:8080/date1.do?date1=2018-01-01,其中输入的date1的数据类型为一个格式为& ...

  5. 大数据技术生态圈形象比喻(Hadoop、Hive、Spark 关系)

    [摘要] 知乎上一篇很不错的科普文章,介绍大数据技术生态圈(Hadoop.Hive.Spark )的关系. 链接地址:https://www.zhihu.com/question/27974418 [ ...

  6. 人脸姿态校正算法 附完整C++示例代码

    在一些特殊情况下,经常需要依据图像中的人脸,对图片进行倾斜矫正. 例如拍照角度幅度过大之类的情况,而进行人工矫正确实很叫人头大. 那是不是可以有一种算法,可以根据人脸的信息对图片进行角度的修复呢? 答 ...

  7. Scala编程入门---面向对象编程之Trait

    Scala中Trait是一种特殊概念 首先我们可以将Triat做为接口来使用,此时的Triat就与java中的接口非常相似 在Triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出具体的 ...

  8. DDGScreenShot—图片擦除功能

    写在前面 图片擦除功能,也是运用图片的绘制功能, 将图片绘制后,拿到相应的图片.当然,有一涨底图更明显 实现代码如下 /** ** 用手势擦除图片 - imageView --传图片 - bgView ...

  9. 爬虫之urllib.error模块

    error模块简介 我们在爬虫的时候发请求的时候难免出现错误,如访问不到服务器或者访问被禁止等等, 出错了之后urllib将错误信息封装成了一个模块对象中,这个模块就叫error模块 error的分类 ...

  10. 安装ie时,报:此安装不支持您的操作系统的当前语言

    打开注册表(win的"运行"栏键入 regedit 再按 OK )的HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Nls/ ...