因为我们这个写的人多,之前能正常上传上去后来一段时间有时候可以有时候不行,然后排查了好久,最后发现问题是登录的位置写错了,把登录服务器那行代码挪上去就可以
例如:修改前
String server = "ftp.example.com";
int port = 21;
String user = "username";
String pass = "password";
FTPClient ftp = new FTPClient();
try {
ftp.connect(server, port);
// 二进制文件传输
ftp.enterLocalPassiveMode();
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
// 上传文件的路径
String remoteFilePath = "/path/to/remote/wjj";//你需要上传到的服务器的目录地址
String localFilePath = "/path/to/local/file.txt";//需要上传的附件地址
ftp.login(user, pass);
// 使用Apache Commons Net库的API上传文件
boolean success = ftp.storeFile(remoteFilePath, new
FileInputStream(localFilePath));
if (success) {
System.out.println("文件上传成功");
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
if (ftp.isConnected()) {
ftp.logout();
ftp.disconnect();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
修改后:
String server = "ftp.example.com";
int port = 21;
String user = "username";
String pass = "password";
FTPClient ftp = new FTPClient();
try {
ftp.connect(server, port);
ftp.login(user, pass);//把这个从原来的地方挪上来就好了
// 二进制文件传输
ftp.enterLocalPassiveMode();
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
// 上传文件的路径
String remoteFilePath = "/path/to/remote/file.txt";
String localFilePath = "/path/to/local/file.txt";
// 使用Apache Commons Net库的API上传文件
boolean success = ftp.storeFile(remoteFilePath, new FileInputStream(localFilePath));
if (success) {
System.out.println("文件上传成功");
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
if (ftp.isConnected()) {
ftp.logout();
ftp.disconnect();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}