java 将服务器内的文件复制

java 将服务器内的文件复制,第1张

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

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

通过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

}

}

可以理解为这样:你的服务器相当于客户端,另一个是服务器,你现在不就是上传文件么,这个会把。所以需要在服务器端编写脚本。什么?不能写?那就加点病毒传一个脚本过去。什么?不会?那还整毛,随随便便就能在别人的机器上写入数据,安全性何在?


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存