在本地开发代码思路如下:
通过FTPClient连接上fs1,然后下载(可以循环批量下载)到本地服务器,保存到一个临时目录。
下载完成后,FTPClient断开与fs1的连接,记得必须logout。
本地服务器通过FileInputStream将刚下载到临时目录的文件读进来,得到一个List<File>集合。
通过FTPClient连接上fs2,循环List<File>集合,将文件上传至fs2的特定目录,然后清空临时目录,上传完毕后,断开fs2的连接,同样必须logout。
public class cpFils {public boolean push() {
boolean reValue = false
try {
String[] toDirs = { "dir1", "dir2", "dir3" }
cpStruct tmpCps = new cpStruct()
for (String _dir : toDirs) {
tmpCps = new cpStruct()
tmpCps.setToDir(_dir)
new Thread(new ThreadCp(tmpCps)).start()
}
} catch (Exception e) {
// log
}
return reValue
}
public static void main(String arg[]) {
new cpFils().push()
System.out.println("end")
}
}
class ThreadCp implements Runnable {
public cpStruct cps
public ThreadCp() {
}
public ThreadCp(cpStruct _cps) {
this.cps = _cps
}
public void run() {
try {
String cpCmd = "copy " + cps.getCpFiles()[0] + " " + cps.getToDir()
Runtime.getRuntime().exec(" cmd /c " + cpCmd)
} catch (Exception e) {
// log
}
}
}
class cpStruct {
// 待Copy文件列表(目录+文件)
private final String[] cpFiles = { "path/file1", "path/file2" }
// Copy到的目标路径
private String toDir
public String[] getCpFiles() {
return cpFiles
}
public String getToDir() {
return toDir
}
public void setToDir(String toDir) {
this.toDir = toDir
}
}
可以理解为这样:你的服务器相当于客户端,另一个是服务器,你现在不就是上传文件么,这个会把。所以需要在服务器端编写脚本。什么?不能写?那就加点病毒传一个脚本过去。什么?不会?那还整毛,随随便便就能在别人的机器上写入数据,安全性何在?欢迎分享,转载请注明来源:夏雨云
评论列表(0条)