当前位置:首页 > 开发 > 编程语言 > Java > 正文

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

发表于: 2015-05-18   作者:bao梦   来源:转载   浏览次数:
ftp
摘要: 在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件、下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件。 首先说一下ftp的特点是:传输速度快,适用于上传大文件,适用于局域网络。 ftp上传需要ftp服务器。这里描述客户端的实现。 上传:   /** * Descriptio

在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实现文件的上传、下载

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Java FTP客户端工具包很多,在此我选用的Apache的FTPClient。这个包的获取可以通过 http://commons.a
Java FTP客户端工具包很多,在此我选用的Apache的FTPClient。这个包的获取可以通过 http://commons.a
Java FTP客户端工具包很多,在此我选用的Apache的FTPClient。这个包的获取可以通过 http://commons.a
Java实现FTP上传下载 用到jar包的Maven依赖: <dependency> <groupId>commons-io</g
直接代码,shell文件名为testFtptool.sh:    #!/bin/bash ####################################
概 述   文件上传和下载是 Web 应用中的一个常见功能,相信各位或多或少都曾写过这方面相关的代码
用java实现ftp文件上传。我使用的是commons-net-1.4.1.zip。其中包含了众多的java网络编程的工具包
1、首先看一下队列窗口的界面 上传下载队列窗口的实现(七)_第1张图片" width="650" height="565"
1、上传本地文件或文件夹到远程FTP服务器端的功能。 当用户在本地文件列表中选择想要上传的文件后,
1、首先看一下队列窗口的界面 上传下载队列窗口的实现(七)_第1张图片" src="http://img.it610.com
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号