简单实用Java上传文件进度条的实现方法
互联网品牌圈关注到简单实用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();}
尊敬的看官您对简单实用Java上传文件进度条的实现方法有什么看法呢?互联网品牌制作专家愿与您共同探讨!版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请加微信号oem365 举报,一经查实,本站将立刻删除。