日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Java使用comms-net jar包完成ftp文件上传进度的检测功能

發布時間:2023/12/15 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 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);
    }

總結

以上是生活随笔為你收集整理的Java使用comms-net jar包完成ftp文件上传进度的检测功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。