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

ftp上传下载实例(部分)

 
阅读更多
package com.suning.schedule.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

/**
* ftp上传、下载
*
* @author xxx
*/
public class FtpUtil
{
    /**
     * 上传文件
     *
     * @param ip ftp服务器IP
     * @param port ftp服务端口
     * @param username 用户名
     * @param password 密码
     * @param workDirectory 工作目录
     * @param filename 文件名称
     * @param inputStream 文件流
     * @return 存储结果
     */
    public static boolean uploadFile(String ip, int port, String username, String password, String workDirectory,
        String filename, FileInputStream inputStream)
    {
        boolean success = false;
        FTPClient ftp = new FTPClient();
        try
        {
            // 连接FTP服务器,如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
            ftp.connect(ip, port);
            // 登录,用户名和密码
              ftp.login(username, password);// 登录
              // ftp拒绝服务请求
            if (!FTPReply.isPositiveCompletion(ftp.getReplyCode()))
            {
                ftp.disconnect();
                return success;
            }
           // 设置文件的传出方式
             client.setFileType(FTPClient.BINARY_FILE_TYPE);
           // 设置文件的编码
             client.setControlEncoding("UTF-8");
            // 设置ftp的初始化目录
            ftp.changeWorkingDirectory(workDirectory);
            ftp.storeFile(filename, inputStream);
            ftp.logout();
            success = true;
        }
        catch (IOException e)
        {
        }
        finally
        {
            if (ftp.isConnected())
            {
                try
                {
                    ftp.disconnect();
                }
                catch (IOException ioe)
                {
                }
            }
        }
        return success;
    }

    /**
     * 下载文件
     *
     * @param ip ftp服务器IP
     * @param port ftp服务端口
     * @param username 用户名
     * @param password 密码
     * @param workDirectory 工作目录
     * @param localPath 本地路径
     * @return 下载结果
     */
    public static boolean downFile(String ip, int port, String username, String password, String workingDirectory,
        String localPath)
    {
        boolean success = false;
        FTPClient ftp = new FTPClient();
        try
        {
           // 连接FTP服务器,如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
            ftp.connect(ip, port);
           // 登录,用户名和密码
            ftp.login(username, password);// 登录
            // ftp拒绝服务请求
            if (!FTPReply.isPositiveCompletion(ftp.getReplyCode()))
            {
                ftp.disconnect();
                return success;
            }
           // 设置文件的传出方式
            client.setFileType(FTPClient.BINARY_FILE_TYPE);
          // 设置文件的编码
            client.setControlEncoding("UTF-8");
          // 设置ftp的初始化目录
          ftp.changeWorkingDirectory(workingDirectory);
            FTPFile[] fs = ftp.listFiles();
            for (FTPFile ff : fs)
            {
                if (ff.getType() == FTPFile.FILE_TYPE)
                {
                    File localFile = new File(localPath + "/" + ff.getName());
                    OutputStream is = new FileOutputStream(localFile);
                    ftp.retrieveFile(ff.getName(), is);
                    is.close();
                    // 如果下载成功了,就把下载的文件从ftp服务器中删除.
                    ftp.dele(ff.getName());
                }
            }
            ftp.logout();
            success = true;
        }
        catch (IOException e)
        {
        }
        finally
        {
            if (ftp.isConnected())
            {
                try
                {
                    ftp.disconnect();
                }
                catch (IOException ioe)
                {
                }
            }
        }
        return success;
    }

}
分享到:
评论

相关推荐

    仿FTP上传下载实例

    【仿FTP上传下载实例】是一个非常适合初学者研究和学习的网络编程项目,它采用VB(Visual Basic)语言编写,提供了完整的源代码。FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议,广泛应用...

    FTP上传下载实例源码

    这个"FTP上传下载实例源码"是使用微软的FTP服务器技术,结合Visual Studio 2008开发环境,实现了一个能够执行文件上传和下载功能的工程代码。 在VS2008中,你可以使用C#或VB.NET作为编程语言来实现FTP客户端的功能...

    C# FTP下载 实例源码(网络操作)

    这个实例源码旨在教你如何利用C#实现FTP下载,从而更好地理解网络操作在实际项目中的应用。 FTP下载的基本流程包括连接到FTP服务器、登录、获取文件列表、选择需要下载的文件以及下载文件本身。在C#中,主要使用`...

    FTP自动下载解压实例

    通过FTP,程序可以登录到远程服务器,列出目录,下载文件,甚至上传文件。 XML文件常用于存储配置信息,因为它的结构清晰,易于阅读和解析。在这里,我们可能会定义FTP服务器的URL、用户名、密码、目标下载路径等...

    FTP上传实例(带进度条)

    这个FTP上传实例提供了可视化的进度反馈,使得用户能够清晰地看到文件上传的进度,提高了用户体验。 FTP上传的核心原理是通过FTP客户端连接到FTP服务器,然后将本地文件分块发送到服务器。在这个过程中,通过跟踪已...

    MFC实现FTP上传下载文件的客户端和服务器

    3. **文件传输**:FTP客户端可以通过`STOR`命令上传文件到服务器,使用`RETR`命令下载文件。MFC的`CFtpFileFind`类可以帮助查找服务器上的文件,而`CInternetFile`则用于读写文件。 4. **错误处理**:在FTP操作中,...

    Java的FTP任务代码实例

    【Java FTP任务代码实例】 在Java编程中,FTP(File Transfer Protocol)被广泛用于在网络间传输文件。Apache Commons Net库提供了方便的API来处理FTP任务。以下是一个详细的FTP操作类的实例,它涵盖了连接、登录、...

    FTP上传、下载实例

    以下是如何使用Inet控件进行FTP上传的步骤: 1. **初始化Inet控件**:在VB窗体上添加Inet控件,并设置其属性,如`Host`(FTP服务器地址)、`UserName`和`Password`(FTP服务器的登录凭证)。 2. **建立连接**:调用...

    VB API 实现FTP上传下载源代码

    **VB API FTP上传下载源代码详解** 在信息技术领域,FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。在VB(Visual Basic)环境中,我们可以使用API(Application Programming Interface...

    实例FTP实例FTP.rar

    - 网站内容管理:网站管理员通过FTP上传、更新网页内容。 - 数据备份:定期将重要文件通过FTP备份到远程服务器。 - 软件分发:开发者通过FTP发布新版本的软件供用户下载。 了解了FTP的基本概念和工作方式后,...

    FTP服务器实例代码

    FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,它允许用户从远程服务器上传、下载文件。在本文中,我们将深入探讨FTP服务器的实例代码,特别是基于VC++的实现。 FTP服务器的主要功能包括管理...

    Ftp 文件上传下载 源代码

    4. **文件上传与下载**:源代码会包含实现FTP上传和下载的函数,可能使用FTP的STOR(存储)命令上传文件,使用RETR(检索)命令下载文件。 5. **目录浏览**:可能通过FTP的LIST和NLST命令获取服务器目录信息,并...

    完整实现ftp上传与下载并解析csv文件

    FTP上传涉及到`storeFile()`方法,而下载则使用`retrieveFile()`。 2. CSV文件解析: CSV(Comma Separated Values)文件是一种常见的数据交换格式,通常用于导入和导出表格数据。Java中,可以使用OpenCSV或者...

    ftp客户端教学实例

    4. **匿名FTP**:许多服务器允许匿名FTP访问,用户无需提供认证信息即可浏览和下载部分公开资源。匿名用户的用户名通常是“anonymous”。 5. **FTP客户端软件**:市面上有许多FTP客户端软件,例如FileZilla、WinSCP...

    QT ftp上传下载,创建文件夹,删除目录

    本教程将深入讲解如何使用QT进行FTP(File Transfer Protocol)操作,包括文件的上传、下载、创建文件夹以及删除目录。 FTP是一种基于TCP协议的应用层协议,用于在Internet上进行文件传输。QT库提供了...

    FTP上传下载(Delphi7).zip

    在Delphi7中,通过TIdFTP组件可以方便地实现FTP上传和下载功能。TIdFTP组件提供了连接、登录、改变工作目录、上传文件(`Put`方法)、下载文件(`Get`方法)以及断点续传(`Append`方法配合`Resume`属性)等操作。...

    java 实现ftp上传下载

    总结来说,Java实现FTP上传下载涉及连接管理、文件操作、多线程处理、异常处理等多个方面。使用Apache Commons Net库能简化这些操作,但正确地处理细节和异常情况仍然至关重要。通过理解和实践这些知识点,你将能够...

    springboot 管理ftp文件系统,上传,下载,ftp

    要上传文件到FTP服务器,可以创建一个`FtpTemplate`实例,然后调用`send`或`sendAndClose`方法,传入FTP服务器的路径和本地文件的输入流。 7. **文件下载** 下载文件则通过调用`get`或`retrieve`方法实现,指定...

    FTP断点上传与断点下载

    首先,需要创建一个FtpWebRequest实例,设置其Method属性为"PUT"(上传)或"GET"(下载),然后设置UsePassive为true以使用被动模式,这对于防火墙和NAT环境是必要的。接着,对于上传,使用Stream写入文件数据;对于...

    java ftp 上传 下载 断点续传

    在本文中,我们将深入探讨Java FTP上传、下载以及断点续传的核心概念和实现方法。 1. FTP基本原理: FTP是一种基于TCP/IP协议的应用层协议,主要用于在客户端和服务器之间传输文件。它定义了两组命令和响应,一组...

Global site tag (gtag.js) - Google Analytics