java进度条代码

1.前台


$.ajax({  
        type: 'GET',  
        cache:false,
        url: 'firmware/getProgress',  
        data: {},  
        dataType: 'json',  
        success : function(data){  
               $('#proBar').css('width',data.rate+''+'%');  
                $('#proBar').empty();  
                $('#proBar').append(data.show);   
        console.log(data.pBytesRead);
        console.log(data.pContentLength);
        console.log(data.status);
       
                $('#proBar').css('width',data.status+''+'%');  
                $('#proBar').empty();  
                $('#proBar').append(data.status+''+'%');  
       
                if(data.status == 100){  
                window.clearInterval(intId);  
                    $('#proBar').append(language['wait_yun']);  
                }     












2.
    /**
     * 获取上传文件进度条信息
     * 
     * @param request
     * @param response
     * @return 文件上传的进度信息
     * @throws Exception
     */
    @RequestMapping(value = "/firmware/getProgress")
    @ResponseBody
    public Object process(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        return (ProgressEntity) request.getSession().getAttribute("status");
    }






3.




/*
 * Copyright © 2012-2015 Thunder Software Technology Co., Ltd.
 * All rights reserved.
 */


package com.thundersoft.fota.utils.uploadFile;


public class ProgressEntity {


private long pBytesRead = 0L;
private long pContentLength = 0L;
private int status = 0;
private int pItems;


public long getpBytesRead() {
return pBytesRead;
}


public void setpBytesRead(long pBytesRead) {
this.pBytesRead = pBytesRead;
}


public long getpContentLength() {
return pContentLength;
}


public void setpContentLength(long pContentLength) {
this.pContentLength = pContentLength;
}


public int getpItems() {
return pItems;
}


public void setpItems(int pItems) {
this.pItems = pItems;
}


public int getStatus() {
return status;
}


public void setStatus(int status) {
this.status = status;
}


@Override
public String toString() {
return "ProgressEntity [pBytesRead=" + pBytesRead + ", pContentLength="
+ pContentLength + ", pItems=" + pItems + "]";
}
}




4. <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
<bean id="multipartResolver"
class="com.thundersoft.fota.utils.uploadFile.FileUploadCustomMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<!-- 指定所上传文件的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<!-- <property name="maxUploadSize" value="200000"/> -->
</bean>






5.








/*
 * Copyright © 2012-2015 Thunder Software Technology Co., Ltd.
 * All rights reserved.
 */


package com.thundersoft.fota.utils.uploadFile;


import java.util.List;


import javax.servlet.http.HttpServletRequest;


import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadBase;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.multipart.MultipartException;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;


public class FileUploadCustomMultipartResolver extends CommonsMultipartResolver {


private FileUploadProgressListener progressListener = new FileUploadProgressListener();

@Override
public MultipartParsingResult parseRequest(HttpServletRequest request)
throws MultipartException {
System.out.println("test FileUploadCustomMultipartResolver");
String encoding = determineEncoding(request);
FileUpload fileUpload = prepareFileUpload(encoding);
progressListener.setSession(request.getSession());
fileUpload.setProgressListener(progressListener);
try {
@SuppressWarnings("unchecked")
List<FileItem> fileItems = ((ServletFileUpload) fileUpload)
.parseRequest(request);
return parseFileItems(fileItems, encoding);
} catch (FileUploadBase.SizeLimitExceededException ex) {
throw new MaxUploadSizeExceededException(fileUpload.getSizeMax(),
ex);
} catch (FileUploadException ex) {
throw new MultipartException(
"Could not parse multipart servlet request", ex);
}
}
}






6.


/*
 * Copyright © 2012-2015 Thunder Software Technology Co., Ltd.
 * All rights reserved.
 */


package com.thundersoft.fota.utils.uploadFile;


import javax.servlet.http.HttpSession;


import org.apache.commons.fileupload.ProgressListener;
import org.springframework.stereotype.Component;


@Component
public class FileUploadProgressListener implements ProgressListener {


    private HttpSession session;
    
    public void setSession(HttpSession session){
        this.session=session;
        ProgressEntity status = new ProgressEntity();
        session.setAttribute("status", status);
    }
 
    /*
     * pBytesRead 到目前为止读取文件的比特数 pContentLength 文件总大小 pItems 目前正在读取第几个文件
     */
    public void update(long pBytesRead, long pContentLength, int pItems) {
    ProgressEntity status = (ProgressEntity) session.getAttribute("status");
        status.setpBytesRead(pBytesRead);
//        System.out.println("pBytesRead="+pBytesRead);
        status.setpContentLength(pContentLength);
//        System.out.println("pContentLength="+pContentLength);
        status.setStatus((int) ((( pBytesRead + 0.0)/ pContentLength) * 100));
//        System.out.println("percent="+(int) ((( pBytesRead + 0.0)/ pContentLength) * 100));
        status.setpItems(pItems);
//        System.out.println("pItems="+pItems);
        //System.out.println("update status is : " + status);
    }
 


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值