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);
    }
时间: 2024-08-09 21:32:10

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

SpringMVC简单入门 源码jar包下载和文件上传

1.Spring MVC简介 该项目的源码下载,springMVC和spring的jar包,请到 manyjar.com 下载. 下载方式1:点击下载 下载方式2:百度搜索manyjar(manyjar官网), 搜索springMVCUnit进行下载 Spring MVC基于java实现WEB MVC设计模式的的请求驱动类型的轻量级Web框架,将web层进行职责解耦,简化web开发. SpringMVC框架通过实现Model-View-Controller模式来将数据.业务与展现进行分离. Sp

Java实现FTP文件上传与下载

实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式),分别为:1.通过JDK自带的API实现:2.通过Apache提供的API是实现. 第一种方式 package com.cloudpower.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import sun.net.Telnet

【问题分析】FTP文件上传与下载

问题描述:通常应用服务器与文件服务器分别在不同的机器上,涉及到文件的上传与下载.通过建立网络映射盘的形式,将文件服务器保存文件的文件夹映射到应用服务器的某个盘符下,经过试验,在tomcat下两台笔记本是可以实现的,但是在生产环境的websphere下试验,经过多番尝试,仍然实现不了. 问题分析:采用FTP的方式实现文件的上传与下载功能,在Java代码中编写客户端的上传与下载,在文件服务器上,直接装一个FTP服务器软件即可.注意生产环境的防火墙以及客户是否允许使用FTP. 解决方案: 工程中导入J

笨鸟先飞之Java(一)--使用struts2框架实现文件上传和下载

不管是.net还是Java,我们最常接触到的就是文件的上传和下载功能,在Java里要实现这两个常用功能会有很多种解决方式,但是struts2的框架却能给我们一个比较简单的方式,下面就一起来看吧: 文件上传: 首先来看实现上传功能的表单,Index.jsp: <span style="font-family:FangSong_GB2312;font-size:18px;"><%@ page language="java" contentType=&q

Ckeditor与Ckfinder(java)整合实现富媒体内容编辑(支持文件上传)

先来看一下最终的效果图 一.编辑器界面 二.上传图片界面 <!-------------------------------------------------------> 一.安装包下载,我使用的安装包是ckfinder_java_2.3.zip和ckeditor_3.6.3.zip,这两个文件可以分别到http://ckfinder.com/download和http://ckeditor.com/download下载,注意我使用的开发语言是java,所以下载cfinder的时候需要选择

笨鸟先飞之Java(一)--使用struts2框架实现文件上传

无论是.net还是Java,我们最常接触到的就是文件的上传和下载功能,在Java里要实现这两个经常使用功能会有非常多种解决方案,可是struts2的框架却能给我们一个比較简单的方式,以下就一起来看吧: 文件上传: 首先来看实现上传功能的表单.Index.jsp: <span style="font-family:FangSong_GB2312;font-size:18px;"><%@ page language="java" contentType

FTP文件上传与下载

实现FTP文件上传与下载可以通过以下两种种方式实现,分别为:1.通过JDK自带的API实现:2.通过Apache提供的API是实现. 第一种方式 [java] view plaincopy package com.cloudpower.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import sun.n

Quartz石英调度实现ftp文件上传

Quartz石英调度实现ftp文件上传 实现一个每月1号00点01分自动生成的文件,通过ftp传到另一台主机上 1.先创建一个job任务类FtpUploadFileJobTask import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import org.apache.commons.net

struts2实现文件上传进度条(前端JS+Java)(自我整理)

需要做一个文件上传进度的效果,结合网上资料和自己的实践后,这里做一个整理 步骤如下: 1.重写.自定义JakartaMultiPartRequest类 <span style="font-size:12px;">package com.hikvision.fileUploadProcess.interceptor; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import