java如何实现将FTP文件转移到另一个FTP服务器上

java如何实现将FTP文件转移到另一个FTP服务器上,第1张

你有FTPClient就比较好办,假如你的两台FTP服务器分别为fs1和fs2

在本地开发代码思路如下:

通过FTPClient连接上fs1,然后下载(可以循环批量下载)到本地服务器,保存到一个临时目录

下载完成后,FTPClient断开与fs1的连接,记得必须logout。

本地服务器通过FileInputStream将刚下载到临时目录的文件读进来,得到一个List<File>集合。

通过FTPClient连接上fs2,循环List<File>集合,将文件上传至fs2的特定目录,然后清空临时目录,上传完毕后,断开fs2的连接,同样必须logout。

String realpath = ServletActionContext.getServletContext().getRealPath("/upload") //获取服务器路径

String[] targetFileName = uploadFileName

for (int i = 0i <upload.lengthi++) {

File target = new File(realpath, targetFileName[i])

FileUtils.copyFile(upload[i], target)

//这是一个文件复制类copyFile()里面就是IO操作,如果你不用这个类也可以自己写一个IO复制文件的类

}

其中private File[] upload// 实际上传文件

private String[] uploadContentType// 文件的内容类型

private String[] uploadFileName// 上传文件名

这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法

是的,用File类的renameTo方法即可,注意目标文件名一定要合法,否则失败!

/**

* 移动文件到指定目录

*

* @param oldPath

*String 如:c:/fqf.txt

* @param newPath

*String 如:d:/fqf.txt

*/

public static void moveFile(String oldPath, String newPath) {

copyFile(oldPath, newPath)

delFile(oldPath)

}

/**

* 移动文件到指定目录

*

* @param oldPath

*String 如:c:/fqf.txt

* @param newPath

*String 如:d:/fqf.txt

*/

public static void moveFolder(String oldPath, String newPath) {

copyFolder(oldPath, newPath)

delFolder(oldPath)

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/573228.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-04
下一篇2023-07-04

发表评论

登录后才能评论

评论列表(0条)

    保存