1、首先在pom文件中添加ftp相关依赖。
<!--和FTP有关-->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
2、代码库如下
package com.zero.service.impl;
import com.zero.Shift;
import com.zero.StatusCode;
import com.zero.config.FtpConfig;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.io.*;
import java.net.SocketException;
/**
* Created by shuo on 2018/5/21.
*/
@Service("ftpService")
@Slf4j
public class FtpServiceImpl {
public FTPClient ftpClient = null;
public FTPClient getFTPClient(String ftpHost, String ftpUserName,
String ftpPassword, int ftpPort) throws SocketException,IOException {
ftpClient = new FTPClient();
ftpClient.setControlEncoding("utf-8");
ftpClient.setDataTimeout(60000); //设置传输超时时间为60秒
ftpClient.setConnectTimeout(60000); //连接超时为60秒
try {
ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器
ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器
if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
log.error("未连接到FTP,用户名或密码错误。");
ftpClient.disconnect();
}
} catch (SocketException e) {
e.printStackTrace();
throw new SocketException("FTP的IP地址可能错误,请正确配置。");
} catch (IOException e) {
e.printStackTrace();
throw new SocketException("FTP的端口错误,请正确配置。");
}
return ftpClient;
}
/**
* 上传文件
* @param pathName ftp服务保存地址
* @param fileName 上传到ftp的文件名
* @param originfilename 待上传文件的名称(绝对地址) *