`

java ftp实现文件的上传、下载

    博客分类:
  • ftp
ftp 
阅读更多

在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件、下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件。

首先说一下ftp的特点是:传输速度快,适用于上传大文件,适用于局域网络。

ftp上传需要ftp服务器。这里描述客户端的实现。

上传:

 

/** 
 * Description: 向FTP服务器上传文件 
 * @Version1.0  baomengjie
 * @param url FTP服务器hostname 
 * @param port FTP服务器端口 
 * @param username FTP登录账号 
 * @param password FTP登录密码 
 * @param path FTP服务器保存目录 
 * @param filename 上传到FTP服务器上的文件名 
 * @param input 输入流 
 * @return 成功返回true,否则返回false 
 */  
public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {  
    boolean success = false;  
    FTPClient ftp = new FTPClient();  
    try {  
        int reply;  
        ftp.connect(url, port);//连接FTP服务器  
        //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器  
        ftp.login(username, password);//登录  
        reply = ftp.getReplyCode();  
        if (!FTPReply.isPositiveCompletion(reply)) {  
            ftp.disconnect();  
            return success;  
        }  
        ftp.changeWorkingDirectory(path); 
       //设置文件类型(二进制) 
      ftp.setFileType(FTPClient.BINARY_FILE_TYPE); 
        ftp.storeFile(filename, input);              
        input.close();  
        ftp.logout();  
        success = true;  
    } catch (IOException e) {  
        e.printStackTrace();  
    } finally {  
        if (ftp.isConnected()) {  
            try {  
                ftp.disconnect();  
            } catch (IOException ioe) {  
            }  
        }  
    }  
    return success;  
}

 

 下载:

 

 

 

 

@RequestMapping(value = "/downloadConfigFile")
    public void downloadConfigFile(HttpServletResponse response,@RequestParam("fileName")String fileName) {
         
        response.setCharacterEncoding("UTF-8");
        response.setContentType("multipart/form-data");
         
            FTPClient ftpClient = new FTPClient();
            try { 
                int reply; 
                ftpClient.connect("120.120.120.156",21);
                ftpClient.login("user1", "user1");
                reply = ftpClient.getReplyCode(); 
                if (!FTPReply.isPositiveCompletion(reply)) { 
                    ftpClient.disconnect();
                    return; 
                }
                ftpClient.changeWorkingDirectory("/GOS_CAS/BACKUP/cas_config_backup");//转移到FTP服务器目录 
                FTPFile[] fs = ftpClient.listFiles(); 
                for(int i=0;i<fs.length;i++){ 
                    if(fs[i].getName().equals(fileName)){
                        String saveAsFileName = new String(fs[i].getName().getBytes("UTF-8"), "ISO8859-1"); 
                        response.setHeader("Content-Disposition", "attachment;fileName="+saveAsFileName);
                        OutputStream os = response.getOutputStream();
                        ftpClient.retrieveFile(fs[i].getName(), os);
                        os.flush();
                        os.close();
                        break;
                    }
                }
                ftpClient.logout(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } finally { 
                if (ftpClient.isConnected()) { 
                    try { 
                        ftpClient.disconnect(); 
                    } catch (IOException ioe) { 
                    } 
                } 
            } 
    }

 

 

 

分享到:
评论

相关推荐

    Java实现FTP文件上传和下载

    以下将详细介绍如何使用Java实现FTP文件上传和下载的步骤,以及涉及到的关键知识点。 首先,Java通过`java.net`和`javax.net`包提供了FTP功能,但这些原生API并不易用。因此,大多数开发人员会使用第三方库如Apache...

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

    Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...

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

    Java 实现 FTP 批量大文件上传下载 本文介绍了如何使用 Java 实现 FTP 服务器上的大批量文件的上传和下载,处理大文件的上传和下载。通过 Java 现有的可用的库来编写 FTP 客户端代码,并开发成 Applet 控件,做成...

    java实现的ftp文件上传

    Java作为多平台支持的编程语言,提供了丰富的库和API来实现FTP文件上传功能。本篇文章将详细探讨如何使用Java实现FTP文件上传,以及相关类的作用。 首先,我们来看标题和描述中的关键词"java实现的ftp文件上传",这...

    使用java实现的linux和ftp服务器文件上传下载工具

    这是我使用java实现的linux和ftp服务器文件上传下载工具,需要电脑安装jdk8, 启动命令,java -jar linuxAndFtp.jar 启动成功后,浏览器访问:http://localhost:9999 服务器的账号密码通过服务器列表页面管理,添加的...

    用JAVA实现Ftp文件上传下载

    本文将深入探讨如何使用Java实现FTP文件上传和下载,包括基本概念、核心类库、实现步骤以及测试用例。 首先,Java通过`java.net`和`org.apache.commons.net.ftp`两个主要库支持FTP操作。`java.net`库中的`FTPClient...

    java实现ftp自动上传文件

    本文将深入探讨如何使用Java编程语言来构建一个FTP文件上传系统,同时结合Log4j日志框架和命令行信息的处理。 首先,我们需要引入FTP客户端库。在Java中,可以使用开源的Apache Commons Net库,它提供了完善的FTP...

    java编写的ftp文件实时监控下载上传

    用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...

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

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

    Java FTP文件上传下载

    总的来说,这个Java FTP文件上传下载实现包含了FTP操作的核心逻辑,以及必要的日志和文本处理支持。开发者可以通过导入这些库和使用`FtpUtil.java`类,轻松地在自己的Java应用中实现FTP文件交互功能。在实际项目中,...

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

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

    java ftp断点上传和下载

    FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件传输。断点续传是FTP的一个重要特性,允许用户在文件...了解这些知识点将使你能够高效地实现在Java环境中进行FTP文件的断点续传操作。

    java FTP 实现上传 下载 拷贝

    java FTP 实现上传 下载 拷贝 亲测可用 java FTP 实现上传 下载 拷贝 java FTP 实现上传 下载 拷贝

    java实现Ftp批量下载文件及解压

    这个库提供了丰富的FTP操作API,包括连接、登录、文件上传和下载等。 1. **导入Apache Commons Net库**: 在项目中添加Apache Commons Net依赖,如果使用Maven,可以在pom.xml文件中添加以下依赖: ```xml ...

    Java上传下载ftp上的文件

    本文将深入探讨如何使用Java实现FTP文件的上传和下载功能,以满足标题和描述中的需求。作者宋海康提供的案例将为我们提供一个基础,帮助我们理解这个过程。 首先,我们需要导入Java FTP库,通常是`commons-net`库,...

    java实现ftp上传jar包

    最后,使用`FTPClient`的`storeFile`方法将JAR文件上传到服务器。 4. **使用edtFTPj/Pro**:`edtFTPj/Pro`是一个强大的Java FTP库,提供了更高级的功能,如SSL/TLS支持,断点续传,文件同步等。它的API使用方式与...

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

    在Java中实现FTP批量大文件上传下载,主要涉及到Java FTP客户端库的选取和使用,以及如何将这一功能集成到Web应用中,例如通过Applet控件。以下是对这个主题的详细解释: 1. **FTP协议与HTTP协议对比**: - HTTP...

    java实现文件上传到ftp

    下面是一个简单的FTP文件上传的步骤: 1. **创建FTPClient对象**:`FTPClient ftp = new FTPClient();` 2. **连接到FTP服务器**:`ftp.connect(server, port);` 需要指定服务器的IP地址(server)和端口号(port...

Global site tag (gtag.js) - Google Analytics