您好,欢迎来到聚站网!
当前位置:聚站网 » 站长资讯 » 互联网资讯 » 优化推广 » 文章详细

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

来源:网络 浏览:100次 时间:2021-10-29

东西很简单,主要用到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();
}

推荐站点

  • 高仿包高仿包

    竭誠精品-高仿世界名牌包包專賣網主營高仿LV包,高仿GUCCI古奇包,高仿HERMES愛馬仕,高仿CHANEL香奈兒,高仿PRADA,高仿巴黎世家等國際高仿包包、1比1高仿女包、高仿包、精仿奢侈品、世界名包、皮帶、皮具、手表、飾品等。LV新款包包同步香港LV專櫃及LV官方網站,LV行業最好品質!

    awhso.net
  • YY分类目录YY分类目录

    YY分类目录全人工编辑的开放式网站分类目录,收录国内外、各行业优秀网站,旨在为用户提供网站分类目录检索、优秀网站参考、网站推广服务。

    www.yydir.com
  • 70网站目录70网站目录

    全人工编辑的开放式网站分类目录,免费收录国内外、各行业优秀网站,旨在为用户提供网站分类目录检索、优秀网站参考、网站推广服务。

    www.70dir.com
  • 25分类目录25分类目录

    25分类目录专业提供网站网址免费提交收录,25分类目录是采用开放导航式的网站大全,收录国内外各行业优秀的网站网址,让网站在各大搜索引擎收录快排名靠前。

    www.25dir.com
  • 99网站目录99网站目录

    久久网站目录采用全人工编辑的开放式网站分类目录,久久网站大全免费收录国内外、各行业优秀网站网址,旨在为用户提供网站分类目录检索、优秀网站参考、网站推广服务。

    https://www.99dir.com