数据传输需要加密,新增以下代码段: ftpClient.setControlEncoding("UTF-8"); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.enterLocalPassiveMode(); ftpClient.setFileTransferMode(FTP.STREAM_TRANSFER_MODE); ftpClient.execPROT("P");
完整工具类
public class FtpUtil { /** * 连接 FTP 服务器 * @param addr FTP 服务器 IP 地址 * @param port FTP 服务器端口号 * @param username 登录用户名 * @param password 登录密码 * @param controlEncoding 文件传输的编码 * @return * @throws Exception */ public static FTPSClient connectFtpServer(String addr, int port, String username, String password, String controlEncoding) throws Exception { FTPSClient ftpClient = new FTPSClient(false); ftpClient.setControlEncoding(controlEncoding); ftpClient.connect(addr, port); int reply = ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { throw new IllegalAccessException(String.format("ftp 连接失败 reply=%s", reply)