java FTP 上传文件

本代码需要 commons-net-3.1.jar 包的支持

官方网站  :  http://commons.apache.org/net/


package xxx;

import java.io.IOException;
import java.io.InputStream;

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

public class FtpUploadUtil {

    private static final Logger logger = Logger.getLogger(FtpUploadUtil.class);

    /**
     * Description: 向FTP服务器上传文件
     * @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, String port, String username, String password, String path,
            String filename, InputStream input) {
        boolean returnValue = false;
        FTPClient ftp = new FTPClient();
        try {
            int reply;

            // 判断是否使用默认端口
            if (CMCts.EMP.equals(port)) {
                ftp.connect(url);
            } else {
                int portNO = Integer.parseInt(port);
                ftp.connect(url, portNO);// 连接FTP服务器
            }

            ftp.login(username, password);// 登录
            reply = ftp.getReplyCode();
            if (!FTPReply.isPositiveCompletion(reply)) {
                ftp.disconnect();
                logger.info("FTP SERVER REFUSED CONNECTION.");
                return returnValue;
            }
            
            ftp.changeWorkingDirectory(path);
            ftp.storeFile(filename, input);

            input.close();

            ftp.logout();
            returnValue = true;
        } catch (IOException e) {
            logger.info("FTPUPLOADUTIL UPLOD FILE ERROR :" + e);
            e.printStackTrace();
        } finally {
            if (ftp.isConnected()) {
                try {
                    ftp.disconnect();
                } catch (IOException ioe) {
                }
            }
        }
        return returnValue;
    }

}

你可能感兴趣的:(java FTP 上传文件)