Java实现ftp文件上传。我使用的是commons-net-1.4.1.zip。其中包含了众多的java网络编程的工具包。

1 把commons-net-1.4.1.jar包加载到项目工程中去。

2 看如下代码:

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 FileTool {   
   
    /**  
     * Description: 向FTP服务器上传文件  
     * @Version      1.0  
     * @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,// FTP服务器hostname   
            int port,// FTP服务器端口   
            String username, // FTP登录账号   
            String password, // FTP登录密码   
            String path, // FTP服务器保存目录   
            String filename, // 上传到FTP服务器上的文件名   
            InputStream input // 输入流   
    ){   
        boolean success = false;   
        FTPClient ftp = new FTPClient();   
        ftp.setControlEncoding("GBK");   
        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.setFileType(FTPClient.BINARY_FILE_TYPE);   
            ftp.makeDirectory(path);   
            ftp.changeWorkingDirectory(path);   
            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;   
    }   
   
    /**  
     * 将本地文件上传到FTP服务器上 *  
     */   
    public static void upLoadFromProduction(String url,// FTP服务器hostname   
            int port,// FTP服务器端口   
            String username, // FTP登录账号   
            String password, // FTP登录密码   
            String path, // FTP服务器保存目录   
            String filename, // 上传到FTP服务器上的文件名   
            String orginfilename // 输入流文件名   
       ) {   
        try {   
            FileInputStream in = new FileInputStream(new File(orginfilename));   
            boolean flag = uploadFile(url, port, username, password, path,filename, in);   
            System.out.println(flag);   
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
    }   
     //测试   
    public static void main(String[] args) {   
           
        upLoadFromProduction("192.168.13.32", 21, "hanshibo", "han", "韩士波测试", "hanshibo.doc", "E:/temp/H2数据库使用.doc");   
    }   
}   

 

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Java8实现FTP与SFTP文件上传下载详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。