山东联诚金属材料有限公司
    • 网站首页
    • 公司简介
      公司简介
      企业文化
    • 产品展示
    • 新闻动态
      公司新闻
      行业新闻
    • 成功案例
      成功案例
    • 客户服务
      售后服务
      技术支持
    • 人才招聘
    • 联系我们
      联系我们
      在线留言

    新闻动态Site navigation

    公司新闻
    行业新闻

    联系方式
    Contact


    地 址:上海市松江66号
    电 话:19957237440
    网址:lcjs666.com
    邮 箱:79217309@qq.com

    网站首页 > 新闻动态
    新闻动态
    Welcome to visit our

    Java如何实现动态显示文件上传进度条

    分享到:
      来源:山东联诚金属材料有限公司  更新时间:2026-10-01 12:00:46  【打印此页】  【关闭】

    本文实例实现文件上(shang)传的何实(shi)进度显示,我们先看看都有哪些问题我们要解决。现动

    1 上传数据的态显处理进(jin)度跟踪

    Java如何实现动态显示文件上传进度条

    2 进度数据在(zai)用(yong)户页面的显示

    Java如何实现动态显示文件上传进度条

    就这么2个问(wen)题,

    Java如何实现动态显示文件上传进度条

    第一个问题,示文主要是传进组件的选择

    必须支持数(shu)据处理侦听或通(tong)知的组件。当(dang)然,度条(tiao)我肯定只用我自己的何实组件(jian)啦。基本原(yuan)理是现动

    1 使用request.getContentLength() 读取(qu)到处理数据的总(zong)长度,注意这个长度不等于文件的态显长度,因为(wei)Base64等编码会(hui)增加数据量,示文如果(guo)超过了允许的(de)长度,直接返回(hui)-1;

    2 在每读取(qu)一部分数据(ju)时(比如一行,传进或(huo)者64K,度条(tiao)或者你自定义的何实字节数),将读取的现动字节数通知我们的进度跟踪程序。我取名为 UploadListener代(dai)码如下

    /*
    * 处理附件上传(chuan)的(de)态显通知(zhi)。

    * 各位可以(yi)继承这个类,来实现自己的特殊处理。
    *
    * @author 赵学庆 www.java2000.net
    */
    public class UploadListener ... {
    // 调(diao)试模式将在控制台打印出一些数据
    private boolean debug;

    // 总数据(ju)字节数
    private int total;

    // 当前已经(jing)处(chu)理的数据字节数(shu)
    private int totalCurrent = 0 ;

    // 延迟,用来调试用,免得速度太快,根本卡看不到进度
    private int delay = 0 ;

    /** */ /**
    * 处理数(shu)据通知的(de)方法。

    * 保(bao)存已经处理(li)的数据(ju)。并且在一定的比例进行延迟。默认每1%

    * 如果不需用延迟,可以删掉内部的代码,加快速度。
    *
    * @param size 增(zeng)加的字节数
    */
    public void increaseTotalCurrent( long size) ... {
    this .totalCurrent += size;
    try ... {
    currentRate = totalCurrent * 100 / total;
    if (currentRate > lastRate) ... {
    if (delay > 0 ) ... {
    Thread.sleep(delay);
    }
    if (debug) ... {
    System.out.println( " rate= " + totalCurrent + " / " + total + " / " + (totalCurrent * 100 / total));
    }
    lastRate = currentRate;
    }
    } catch (Exception e) ... {
    e.printStackTrace();
    }
    }

    /** */ /**
    * 读取全部自己数(shu)
    *
    * @return
    */
    public int getTotal() ... {
    return total;
    }

    /** */ /**
    * 读取(qu)已经处理的字节数
    *
    * @return
    */
    public int getTotalCurrent() ... {
    return totalCurrent;
    }

    private long lastRate = 0 ;

    private long currentRate = 0 ;

    public int getDelay() ... {
    return delay;
    }

    public void setDelay( int delay) ... {
    this .delay = delay;
    }

    public void setTotal( int total) ... {
    this .total = total;
    }

    public boolean isDebug() ... {
    return debug;
    }

    public void setDebug( boolean debug) ... {
    this .debug = debug;
    }
    }
    你学会了吗?

    上一篇:黔西广告公司_黔西网络推广哪家好点
    下一篇:龙华建设_龙华网站建设结论_1

    相关文章

    • 龙岗建设工程交易中心官网_龙岗建设网站哪家好_1
    • 企业做推广有几种方式_文山企业如何做网络推广_1
    • 企业域名邮箱_韩国域名注册邮箱怎么填
    • 企业如何开展网络营销_老板开展网络营销的目的
    • 黄页网站建设教程_1
    • 企业岗位名称有哪些_网站建设相关岗位名称
    • 企业seo_正规seo推广有哪些seo白帽
    • 企业如何进行网络推广_肇庆网络推广哪里有公司_1
    • 龙游信息网天地_龙游建网站有哪些_3
    • 企业seo_新疆seo排名优化方法

    友情链接:

    • 黑河利文网络科技有限公司
    • 衡阳帝奇网络科技有限公司
    • 禹州源微网络科技有限公司
    • 峨眉山富营网络科技有限公司
    • 吉安茂康网络科技有限公司
    • 潞西源彬网络科技有限公司
    • 泰兴跃频网络科技有限公司
    公司简介
    |产品展示|新闻动态|成功案例|客户服务|人才招聘|联系我们

    Copyright © 2026 Powered by 山东联诚金属材料有限公司   sitemap

    0.3135s , 49723.21875 kb