zoukankan      html  css  js  c++  java
  • Java使用comms-net jar包完成ftp文件上传进度的检测功能

    本文章只讲述大致的思路与本次功能对应的一些开发环境,具体实现请结合自己的开发情况,仅供参考,如果有不对的地方,欢迎大家指出!

    准备环境:JDK1.7 OR 1.8、eclipse、ftp服务器(可自行搭建)、comms-net jar包3.3版本的。其余的就不详细列举了。

    1.在现实开发中ftp服务器和项目的部署服务器基本不会是同一台,所以基础springmvc的文件上传进度获取,只能获取到文件的二进制流到达项目后台的进度。对于真实的ftp文件上传进度,需要使用comms-net提供的监听器来实现。

    2.在ftp代码上传前设置监听器。完成文件上传的进度监听,我这边是把进度保存在session中,前端定时获取。上传完成后,把session中的对应值清空。附上核心代码:

    /**
         * 获取文件上传进度
         * @param totalBytes 文件总大小
         */
        public void uploadProgress(long totalBytes){
            CopyStreamAdapter streamListener = new CopyStreamAdapter() {
    
                /**
                 * @param totalBytesTransferred已经上传的字节数
                 */
                @Override
                public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {
                    /** 通过计算已经上传大小和总大小的百分比获取上传进度。 */
                   String percent = CalculationUtil.percentCal((int)totalBytesTransferred, (int)totalBytes, 3);
                   if(percent.contains(".")){
                       percent = percent.substring(0, percent.lastIndexOf("."));
                   }
                   HttpSession session = request.getSession();
                   session.setAttribute(session.getId(), percent);
                }
    
             };
             this.client.setCopyStreamListener(streamListener);
        }
  • 相关阅读:
    OpenJudge计算概论-寻找山顶
    OpenJudge计算概论-配对碱基链
    OpenJudge计算概论-分配病房
    OpenJudge计算概论-计算鞍点
    OpenJudge计算概论-错误探测
    OpenJudge计算概论-文字排版
    OpenJudge计算概论-二维数组右上左下遍历
    OpenJudge-计算点的距离并排序
    OpenJudge计算概论-找最大数序列
    Openjudge计算概论-奇数单增序列
  • 原文地址:https://www.cnblogs.com/duck-ifox/p/7470349.html
Copyright © 2011-2022 走看看