java fileupload 进度_简单实用Java上传文件进度条的实现方法

东西很简单,主要用到commons-fileupload,其中有一个progressListener的接口,该接口可以实现实时更新已上传文件的大小,有了这个还说什么呢?

这里给出代码:

package lc.progress;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

import lc.progress.vo.fileUploadStatus;

import org.apache.commons.fileupload.ProgressListener;

public class myProgressListener implements ProgressListener {

private HttpSession session;

public myProgressListener(HttpServletRequest req) {

session=req.getSession();

fileUploadStatus status = new fileUploadStatus();

session.setAttribute("status", status);

}

/* pBytesRead 到目前为止读取文件的比特数

* pContentLength 文件总大小

* pItems 目前正在读取第几个文件

* 只要在session中实时保存文件上传的状态(这里我用fileUploadStatus类来封装)

*/

public void update(long pBytesRead, long pContentLength, int pItems) {

// TODO Auto-generated method stub

fileUploadStatus status = (fileUploadStatus) session.getAttribute("status");

status.setPBytesRead(pBytesRead);

status.setPContentLength(pContentLength);

status.setPItems(pItems);

}

}

然后在上传得servlet或action中加入这样一段代码,就可以把自定义的progressListener添加进去

myProgressListener getBarListener = new myProgressListener(req);

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setProgressListener(getBarListener);

最后就是通过js来不断的访问另一个servlet来实时返回上传状态就可以了,限于篇幅我就不再贴代码了,有兴趣的读者可以自己下载来看。

此外,这个代码也可以参考一下:

public static void main(String[] args) throws Exception {

System.out.print("Progress:");

for (int i = 1; i <= 100; i++) {

System.out.print(i + "%");

Thread.sleep(100);

for (int j = 0; j <= String.valueOf(i).length(); j++) {

System.out.print("\b");

}

}

System.out.println();

}

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值