`
student_11
  • 浏览: 16702 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

简单的java ftp功能

阅读更多
//仅仅实现了FTP功能。
/**
 * @author wuxg
 *
 */

package com.wuxg.server.ftp;


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FtpClient {
    private FTPClient ftpClient;
    private int reply;
    
    /**
     * 连接ftp服务器
     *
     * @param server  服务器IP
     * @param user    ftp登陆用户名
     * @param password ftp登陆密码
     * @throws IOException
     */
    public void connectServer(String server,String user,String password)
        throws IOException{
            ftpClient = new FTPClient();
            //连接服务器
            ftpClient.connect(server,Constants.PORT);
            //登陆
            ftpClient.login(user, password);
            //上传文件
            ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
            reply=ftpClient.getReplyCode();
            if(!FTPReply.isPositiveCompletion(reply)){
                ftpClient.disconnect();
                System.out.println("connect error");
            }
            else{
                System.out.println("connect success");
                System.out.println("---------------------");
            }
    }
    
    /**
     *
     * @param server
     *                 服务器地址
     * @param user
     *                 登陆用户名
     * @param password
     *                 登陆密码
     * @param remotePath
     *                     远程路径
     * @throws IOException
     */
    public void connectServer(String server,String user,String password ,String remotePath)
        throws IOException {
            ftpClient = new FTPClient();
            ftpClient.connect(server,Constants.PORT);
            ftpClient.login(user, password);
            //更换上传目录
            ftpClient.changeWorkingDirectory(remotePath);
            ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
            reply=ftpClient.getReplyCode();
            if(!FTPReply.isPositiveCompletion(reply)){
                ftpClient.disconnect();
                System.out.println("connect error");
            }
            else{
                System.out.println("connect success");
                System.out.println("---------------------");
            }
    }
    
    /**
     * 上传单个文件
     *
     * @param fileName
     *             上传到服务器的文件名
     * @param input
     * @throws IOException
     */
    public void uploadFile(String fileName,InputStream input) throws IOException{
        ftpClient.storeFile(fileName,input);
    }

    /**
     * 多个文件目录上传
     *
     * @param localFile
     *             本地上传路径
     * @param remotePath
     *             上传的ftp服务器上的目录
     * @throws IOException
     */
    public void uploadMoreFiles(String localFile,String remotePath) throws IOException{
        //StringBuffer strBuf =new StringBuffer();
        File fi=new File(localFile);
        File []fileList=fi.listFiles();
        for(File f : fileList){
            if(f.isDirectory()){           //如果是目录            
                String nextPath=f.getName().toString();
                //System.out.println("----------"+nextPath);
                ftpClient.changeWorkingDirectory(remotePath);
                ftpClient.makeDirectory(nextPath);
                //ftpClient.changeWorkingDirectory(remotePath+"/"+ nextPath);
                String path =(remotePath+"/"+ nextPath).toString();
                //System.out.println(path);
                uploadMoreFiles(f.getAbsolutePath().toString(),path);
            }else{
                ftpClient.changeWorkingDirectory(remotePath);
                InputStream finput= new FileInputStream(f.getAbsolutePath());
                uploadFile(f.getName(),finput);
                finput.close();
            }
        }
    }
    
    //关闭ftp
    public void closeFtpClient() throws IOException{
        if( ftpClient != null){
            ftpClient.disconnect();
        }
    }

}
分享到:
评论

相关推荐

    java FTP server

    开发者可以通过查看这些内容来学习和理解如何实现一个功能完备的Java FTP服务器,也可以直接部署和使用这个服务器。如果需要进一步了解或定制功能,可以深入研究源代码,学习其中的类和方法是如何实现FTP协议规范的...

    java ftp客户端,服务端

    对于更复杂的FTP功能,如断点续传、二进制/文本模式转换,可能需要额外的逻辑处理。 此外,Java还提供了一个名为`org.apache.commons.net.ftp`的第三方库,它简化了FTP客户端和服务端的开发。这个库包含了FTPClient...

    java ftp java ftp

    在Java中,我们可以利用Apache Commons Net库来实现FTP客户端的功能,从而上传、下载、列出远程目录、删除文件等操作。 Java FTP的主要知识点包括: 1. **Apache Commons Net库**:这是Java中广泛使用的FTP客户端...

    javaftp.rar_JAVAFTP_Javaftp 服务器_ftp_java ftp_myftp.dll

    JavaFTP项目的目标是提供一个简单易用且功能完备的FTP服务器解决方案,特别适合那些需要在Java环境中部署FTP服务的开发者。 FTP服务器的核心功能包括: 1. **用户认证**:JavaFTP服务器支持不同的用户账号和权限...

    JAVA实现简单的对FTP上传与下载

    本文将详细介绍如何使用Java实现简单的FTP文件上传与下载功能,并基于提供的"ftpLoadDown.jar"库和"使用方法.txt"来解析相关知识。 首先,我们需要了解FTP的基础知识。FTP是一种应用层协议,它依赖于TCP/IP协议栈,...

    java实现ftp上传jar包

    在Java中,我们可以使用多种库来实现FTP功能。 2. **Java FTP库**:在描述中提到了`edtftpj.jar`,这是一个Java FTP客户端库,提供了一种简单的方式来处理FTP连接和文件传输。另外,`commons-net-1.4.1.jar`是...

    ftp.rar_ftp_ftp java_java ftp_java简单的FTP

    通过上述步骤,你就可以在Java中实现FTP的简单上传和下载功能。在实际应用中,你可能需要构建更复杂的FTP客户端,例如支持多线程上传下载、目录操作、断点续传等功能。Apache Commons Net库提供了许多这样的高级特性...

    java ftp连接池

    在提供的文件列表中,"ftp-test"可能是测试FTP连接池功能的代码或脚本。这个测试可能包括创建连接池、执行FTP操作(如上传、下载、列出目录等)、验证连接池的性能和稳定性等。 总的来说,使用Java FTP连接池能够...

    java实现ftp功能

    根据提供的文件信息,我们可以总结出以下关于“Java实现FTP功能”的相关知识点: ### 1. FTP功能概述 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的协议。它支持基本的文件传输操作,如文件上传...

    JAVA中实现FTP功能代码

    在Java中实现FTP功能代码,主要涉及到的是...总的来说,Java中使用`FTPClient`实现FTP功能是一种常见且有效的方式,它可以帮助开发者轻松地完成与FTP服务器的交互,无论是上传还是下载文件,或者是更复杂的FTP操作。

    java FTP服务器文件上传下载,创建多级文件夹.zip

    本教程将详细讲解如何使用Java实现FTP服务器的文件上传、下载以及创建多级文件夹的功能,并提供一个可以直接使用的demo。 首先,Java中的FTP操作通常依赖于`org.apache.commons.net.ftp`库,这个库提供了FTPClient...

    java ftp服务器实例

    而`com`文件夹可能包含了实现FTP服务器功能的源代码,通常Java代码会被组织成多个包(package),每个包下包含相关的类(class)。 在Java中实现FTP服务器,我们需要关注以下几个关键组件: 1. **用户认证**:FTP...

    java实现FTP服务器

    ### Java实现FTP服务器的关键知识点 在探讨如何使用Java实现FTP(File Transfer Protocol)服务器之前,我们首先需要理解FTP的基本概念及其工作原理。FTP是一种用于在网络上进行文件传输的标准协议,它支持上传...

    java_ftp.rar_FTP客户端 java_ftp_ftp java_java ftp_java_ftp

    总的来说,这个"java_ftp.rar"压缩包为Java开发者提供了一套完整的FTP解决方案,涵盖了客户端和服务端的实现,这对于学习FTP协议,或者在没有现成FTP服务端软件的情况下快速构建FTP功能的项目非常有用。开发者可以...

    javaftp.rar_JAVAFTP_ftp_ftp源码_java_java ftp

    `javaftp.txt`可能是具体的FTP源码示例,你可以通过阅读和分析这个文件来了解FTP客户端的实现细节。 总的来说,理解和实现Java FTP需要对网络通信、文件I/O和异常处理有深入的理解,同时,熟悉FTP协议和使用相应的...

    Java实现FTP批量大文件上传下载

    找一个优秀的适合我们需要的 Java FTP 客户端库并不像看起来那么简单。相反这是一项非常痛苦复杂的工作。每个库都适合不同的需求。这些库在性能上是不等价的,并且它们的设计上有着根本上的差别。 三、Java FTP ...

    java ftp 多线程 断点续传等知识

    在Java中,我们可以使用`java.net`包中的`Socket`类来实现基本的FTP功能,但更常见的是使用Apache Commons Net库,它提供了更丰富的FTP功能,包括多线程和断点续传。 FTP服务器是运行FTP服务的计算机,它存储着可供...

    java ftp上传 下载 文件压缩解压

    这篇博客“java ftp上传 下载 文件压缩解压”很可能是关于如何使用Java实现FTP文件上传、下载以及文件的压缩与解压功能。下面我们将深入探讨这些知识点。 首先,FTP上传和下载是Java中常见的任务,通常通过`java...

    java ftp 上传 IIS 展示,代码+文档

    在JDK 1.7版本中,Java已经内置了`java.net.FTPSClient`和`java.net.FTPClient`类,可以用来实现FTP功能。不过,这两个类并不支持SSL/TLS安全连接,如果你需要在不安全的网络环境中进行文件传输,可能需要使用第三方...

    Java实现FTP文件上传和下载

    首先,Java通过`java.net`和`javax.net`包提供了FTP功能,但这些原生API并不易用。因此,大多数开发人员会使用第三方库如Apache Commons Net,它提供了一个更友好的FTPClient接口来处理FTP操作。 **FTPClient的使用...

Global site tag (gtag.js) - Google Analytics