Java上传文件进度条的实现方法(附demo源码下载)
本文实例讲述了Java上传文件进度条的实现方法。分享给大家供大家参考,具体如下:
东西很简单,主要用到commons-fileupload,其中有一个progressListener的接口,该接口可以实现实时更新已上传文件的大小,有了这个还说什么呢?
这里给出代码:
packagelc.progress; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpSession; importlc.progress.vo.fileUploadStatus; importorg.apache.commons.fileupload.ProgressListener; publicclassmyProgressListenerimplementsProgressListener{ privateHttpSessionsession; publicmyProgressListener(HttpServletRequestreq){ session=req.getSession(); fileUploadStatusstatus=newfileUploadStatus(); session.setAttribute("status",status); } /*pBytesRead到目前为止读取文件的比特数 *pContentLength文件总大小 *pItems目前正在读取第几个文件 *只要在session中实时保存文件上传的状态(这里我用fileUploadStatus类来封装) */ publicvoidupdate(longpBytesRead,longpContentLength,intpItems){ //TODOAuto-generatedmethodstub fileUploadStatusstatus=(fileUploadStatus)session.getAttribute("status"); status.setPBytesRead(pBytesRead); status.setPContentLength(pContentLength); status.setPItems(pItems); } }
然后在上传得servlet或action中加入这样一段代码,就可以把自定义的progressListener添加进去
myProgressListenergetBarListener=newmyProgressListener(req); ServletFileUploadupload=newServletFileUpload(factory); upload.setProgressListener(getBarListener);
最后就是通过js来不断的访问另一个servlet来实时返回上传状态就可以了,限于篇幅我就不再贴代码了,有兴趣的读者可以自己下载来看。
完整实例代码点击此处本站下载。
希望本文所述对大家Java程序设计有所帮助。