FTP工具类
程序员文章站
2022-05-29 20:03:26
...
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; } }