问题分析
当java通过FTP工具类上传文件到FTP指定目录时,如果FTP服务器上当前目录没有被创建,则在执行上传的时候,会出现上传失败的错误
解决方案
因为在此之前没有当前指定目录,因此我们在执行上传之前要进行创建操作。当上传路径为单级时,直接使用ftpUtils.makeDirectory(“路径”);即可完成,但如果路径为多级目录时,我们就需要进行分级创建并切换目录,再分级创建并切换目录,依次直到指定的位置,然后执行上传操作。
/*获取路径字符串*/ String dir ="/"; if (ftp.getIllegalImg() != null && !Objects.equals(ftp.getIllegalImg(), "")){ dir = ftp.getIllegalImg(); } /*将路径通过反斜杠进行切割遍历获取每级路径*/ String[] split = dir.split("/"); for (String str : split) { if(StringUtils.isBlank(str)) { continue; } if (!ftpUtils.changeWorkingDirectory(str)) { System.err.println("不存在"); boolean makeDirectory = ftpUtils.makeDirectory(str); boolean changeWorkingDirectory = ftpUtils.changeWorkingDirectory(str); System.err.println(str + "创建:" + makeDirectory + ";切换:" + changeWorkingDirectory); } else { System.err.println("存在"); } }