Java通过SSH实现文件上传下载功能实现
实现的主要功能:
1.上传
压缩对应的文件夹,生成临时文件.zip ---->上传临时文件.zip,上传成功,删除本地临时文件
----> 远程服务上解压到服务器指定路径,并删除服务器上临时zip文件 ---->删除配置文件information.txt
2.下载
压缩服务器指定文件夹,生成临时文件.zip ---->下载压缩文件到本地指定路径,下载完成,删除服务器上的 zip文件
---->解压本地压缩包,解压完成,删除 zip包 ---->删除配置文件information.txt
1.创建配置信息文件information.txt,内容格式如下:
;down;132.232.143.201;21;Administrator;test;C:\ftp\服务器测试\;E:\wangzgCode\sshLocal\;本地保存测试
#down;服务IP地址;端口;服务器用户名;服务器密码;服务器文件夹的路径;本地保存地址;本地保存文件名
;up;132.232.143.201;21;Administrator;test;E:\wangzgCode\sshLocal;C:\ftp;服务器测试
#up;服务器IP地址;端口;服务器用户名;服务器密码;本地文件夹的路径;服务器保存地址;服务器保存文件名
2.解析配置文件其实很简单
这里我就贴一些关键代码,
1.读取配置文件的第一行内容,代码如下:
/**
* 读取配置信息
* @param filePath 文件路径
* @return 返回文件第一行内容,
*返回null表示文件不存在;返回为“”表示文件存在,内容为空;
*/
private static String readConfigInfo(){
File file = new File(configPath);
if(!file.exists()) {
//文件不存在,即不做任何操作
return null;
}
String result = "";
try{
//构造一个BufferedReader类来读取文件
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(configPath),"UTF-8"));
result= br.readLine();
//读取第一行配置信息
System.out.println("load config" );
br.close();
}catch(Exception e){
e.printStackTrace();
}
return result;
}
2.构建配置信息的ConfigBean
private static ConfigBean buildConfigBean(String configStr) {
ConfigBean configBean = null;
if(StringUtils.isNotEmpty(configStr)) {
String [] configArray = StringUtils.split(configStr,separator);
//判断是否为上传类型up
if(uploadType.equals(configArray[1])) {
//#up;服务器IP地址;端口;服务器用户名;服务器密码;本地文件夹的路径;服务器保存地址;服务器保存文件名
configBean = new ConfigBean();
con