你有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)
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)