可以尝试使用FTPClient进行文件传输,以下为示例代码:
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import java.io.FileInputStream;
import java.io.IOException;
public class FtpUtil {
private static FTPClient ftp = new FTPClient();
private static String username = "username";
private static String password = "password";
private static String ftpHost = "ftp.example.com";
private static int ftpPort = 21;
/**
* 上传文件至FTP服务器
*
* @param localFilePath 本地文件路径
* @param remoteFilePath 远程文件路径
* @throws IOException
*/
public static void uploadFile(String localFilePath, String remoteFilePath) throws IOException {
FileInputStream localFileInputStream = new FileInputStream(localFilePath);
ftp.setControlEncoding("UTF-8");
ftp.connect(ftpHost, ftpPort);
ftp.login(username, password);
// 设置成主动模式,否则由于路由器防火墙等原因会上传失败
ftp.enterLocalPassiveMode();
ftp.setFileType(FTP.BINARY_FILE_TYPE);
boolean isSuccess = ftp.storeFile(remoteFilePath, localFileInputStream);
if (isSuccess) {
System.out.println("文件上传成功!本地路径:" + localFilePath + ",远程路径:" + remoteFilePath);
} else {
System.out.println("文件上传失败!本地路径:" + localFilePath + ",远程路径:" + remoteFilePath);
}
localFileInputStream.close();
ftp.logout();
}
}