Java上传文件进度条的实现方法(附demo源码下载)

本文实例讲述了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来实时返回上传状态就可以了,限于篇幅我就不再贴代码了,有兴趣的读者可以自己下载来看。

希望本文所述对大家Java程序设计有所帮助。

相关阅读:

PHP之密码加密的几种方式

JavaScript获取某年某月的最后一天附截图

MAC如何设置个性化窗口拒绝一模一样

Win8.1遇到故障时如何打开Windows帮助和支持

JS循环遍历JSON数据的方法

C语言for语句用法详解

WPF自动隐藏的消息框的实例代码

javascript数组输出的两种方式

常用DOM整理

win7系统使用360断网急救箱提示发现网络存在问题网络异常的解决方法

android异步加载图片并缓存到本地实现方法

用js代码和插件实现wordpress雪花飘落效果的四种方法

php基于openssl的rsa加密解密示例