FTPClient localFtpClient = new FTPClient();
FTPCLient targetFtpClient = new FTPClient();
//ftp连接
localFtpClient.connect(fileIP);
boolean isLogin1 = localFtpClient.login(fileFtpName, fileFtpPassword);
targetFtpClient.connect(targetIP);
boolean isLogin2 = targetFtpClient.login(targetFtpName, targetFtpPassword);
if (isLogin1 && isLogin2) {
try {
localFtpClient.enterLocalPassiveMode();
FTPFile[] fs = localFtpClient.listFiles(localFtpPath); //获取目标目录下的所有文件
for (FTPFile ff : fs) {
String f= new String(ff.getName().getBytes("iso-8859-1"), "utf-8");
if (f.equals(name + ".mp4")) { //根据文件名称查询目标文件,以mp4文件为例
OutputStream is = targetFtpClient.storeFileStream(targetFtpClient.printWorkingDirectory() + targetFtpPath + "/" + ff.getName());//这句话就是获取targetFtpClient的流
if(is == null){
data.put("promptMSG", "目标文件不存在或无访问权限!");
break;
}
localFtpClient.changeWorkingDirectory(localFtpPath);
localFtpClient.setFileType(FTP.BINARY_FILE_TYPE);
Boolean b = localFtpClient.retrieveFile(ff.getName(), is); //这句话是把文件从ftp1复制到ftp2中,通过流is
is.close();
break;
}}
localFtpClient.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (localFtpClient.isConnected()) {
try {
localFtpClient.disconnect();
} catch (IOException ioe) {
}}
if (targetFtpClient.isConnected()) {
try {
targetFtpClient.disconnect();
} catch (IOException ioe) {
}}}}else{
data.put("promptMSG", "ftp路径无法访问!");
}