代码如下:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import sun.net.TelnetOutputStream;
import sun.net.TelnetInputStream;
import sun.net.ftp.FtpClient;
public class FtpTest {
String localfilename;
String remotefilename;
FtpClient ftpClient;
// server:服务器名字
// user:用户名
// password:密码
// path:服务器上的路径
public void connectServer(String ip, int port,String user
, String password,String path) {
try {
ftpClient = new FtpClient();
ftpClient.openServer(ip,port);
ftpClient.login(user, password);
System.out.println("login success!");
if (path.length() != 0) ftpClient.cd(path);
ftpClient.binary();
} catch (IOException ex) {
System.out.println("not login");
System.out.println(ex);
}
}
public void closeConnect() {
try {
ftpClient.closeServer();
System.out.println("disconnect success");
} catch (IOException ex) {
System.out.println("not disconnect");
System.out.println(ex);
}
}
public static void main(String agrs[]) {
FtpTest ft = new FtpTest();
//以连接本机做测试
ft.connectServer("127.0.0.1",21, "实际的账号", "实际密码","/");
}
}
错误提示:
not login
java.net.ConnectException: Connection refused: connect
你用的FTPClient引入不对吧,我们项目上都是用的
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
下面是我们项目上用到的FTP的实现代码(FTP需要先连接,再登录,之后就是校验登录是否成功),具体代码如下:
/*** 获取FTPClient对象
*
* @param ftpHost FTP主机服务器
* @param ftpPassword FTP 登录密码
* @param ftpUserName FTP登录用户名
* @param ftpPort FTP端口 默认为21
* @return FTPClient
* @throws Exception
*/
public static FTPClient getFTPClient(String ftpHost, String ftpUserName,
String ftpPassword, int ftpPort) throws Exception {
try {
FTPClient ftpClient = new FTPClient();
ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器
ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器
if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
logger.error("未连接到FTP,用户名或密码错误!");
ftpClient.disconnect();
return null;
} else {
logger.info("FTP连接成功!");
return ftpClient;
}
} catch (SocketException socketException) {
logger.error("FTP的IP地址可能错误,请正确配置!");
throw socketException;
} catch (IOException ioException) {
logger.error("FTP的端口错误,请正确配置!");
throw ioException;
}
}
一、请检查服务器,地址,端口等参数。
二、使用正常的ftp 客户端,是否可以正常连接到服务器。
三、如果第二步不行,就请排查服务器端的问题,如防火墙等。