今天写了一个java上传文件到FTP服务器功能,使用FTPClient的storeFile方法返回值为true,但是服务器并没有相应文件生成。查看了百度,然后设置了被动模式一样失败。然后以为是权限不足,测试新建文件夹,成功。但是文件依然失败。
运行结果不报错
本地调试过没,先在本地试试。
org.apache.commons.net.ftp.FTPClient ftpClient = new org.apache.commons.net.ftp.FTPClient();
try {
log.info("连接ftp基本信息:" + ip + ":" + port + "," + username + "," + password);
ftpClient.connect(ip, port);
ftpClient.login(username, password);
ftpClient.enterLocalPassiveMode();
log.info("连接状态:" + ftpClient.getReplyString());
log.info("切换目录" + toPath);
if (!ftpClient.changeWorkingDirectory(toPath)) {
log.info("当前连接用户" + username + ",访问不到该目录!");
return false;
}
// 设置上传目录
ftpClient.changeWorkingDirectory(toPath);
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 设置文件类型(二进制)
ftpClient.setFileType(org.apache.commons.net.ftp.FTPClient.BINARY_FILE_TYPE);
result = ftpClient.storeFile(new String(toFileName.getBytes("GBK"), "iso-8859-1"), fis);
检查下是否少传参数