在我的代码中,我必须将70-80个文件上传到FTP服务器。
最佳方案是创建连接,上传20个文件,关闭它。执行此操作直到上载所有文件。 我尝试了每个文件的不同连接......这是一场灾难。
但是,我找不到任何允许我关闭连接的disconnect()或close()函数......我发现只有静态函数closeCache(),建议在关闭软件之前使用它......所以不是真的为我工作......
我总是得到一个服务器关闭连接'上传25个文件后出现异常。
我可能没有完全理解这个API。
public static boolean uploadFiles() {
int count = 0;
FTPClient ftpClient = new FTPClient(SERVER, USER, PASSWORD);
try {
if (!Tools.isListNullOrEmpty(xmlFilesToBeUploaded)) {
for (File xmlFile : xmlFilesToBeUploaded) {
if (count == MAX_FILES_PER_CONNECTION) {
count = 0;
ftpClient = null;
ftpClient = new FTPClient(SERVER, USER, PASSWORD);
}
// "/" for root folder
ftpClient.sendFile(xmlFile.getAbsolutePath(), "/");
count++;
}
}
xmlFilesToBeUploaded = null;
if (!Tools.isListNullOrEmpty(imageFilesToBeUploaded)) {
for (File imageFile : imageFilesToBeUploaded) {
if (count == MAX_FILES_PER_CONNECTION) {
count = 0;
ftpClient = null;
ftpClient = new FTPClient(SERVER, USER, PASSWORD);
}
// "/" for root folder
ftpClient.sendFile(imageFile.getAbsolutePath(), "/" + IMAGES_FOLDER);
count++;
}
}
imageFilesToBeUploaded = null;
return true;
} catch (FileTransferException e) {
Log.error(e);
return false;
}
}
答案 0 :(得分:0)
没关系,我使用了Apache Commons库来完成我需要的工作,并且开发更灵活。