FTP工具类

阅读更多
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.n3r.quartz.glass.log.joblog.JobLogs;

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

/**
 * Created by _wangcx on 2018/3/22
 */

public class DataFtpUtils {
    public static boolean uploadFile(String host, String port, String username, String password, String basePath,
                                      String filename, InputStream input) {
        boolean result = false;
        FTPClient ftp = new FTPClient();
        try {
            int reply;
            if(StringUtils.isNotBlank(port)){
                ftp.connect(host,Integer.valueOf(port));// 连接FTP服务器
            }else{
                ftp.connect(host);// 连接FTP服务器
            }

            // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器
            ftp.login(username, password);// 登录
            reply = ftp.getReplyCode();
            if (!FTPReply.isPositiveCompletion(reply)) {
                JobLogs.info("--FTP连接失败--");
                ftp.disconnect();
                return result;
            }
            //切换到上传目录

            if (!ftp.changeWorkingDirectory(basePath)) {
                JobLogs.info("--FTP:目录不存在--");
            }else{
                ftp.changeWorkingDirectory(basePath);
            }

            //设置上传文件的类型为二进制类型
            ftp.setFileType(FTP.BINARY_FILE_TYPE);
            //上传文件
            if (!ftp.storeFile(filename, input)) {
                JobLogs.info("--FTP:上传失败--");
                return result;
            }
            input.close();
            ftp.logout();
            result = true;
            JobLogs.info("--FTP:上传成功--");
        } catch (IOException e) {
            JobLogs.error("--FTP:上传失败--",e);
            e.printStackTrace();
        } finally {
            if (ftp.isConnected()) {
                try {
                    ftp.disconnect();
                } catch (IOException ioe) {
                    JobLogs.error("--FTP:disconnect 失败--",ioe);
                }
            }
        }
        return result;
    }
}

 

你可能感兴趣的:(FTP工具类)