资源描述:
《基于SSH协议的sftp协议》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、packageunibase.net.sftp;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.util.HashMap;importjava.util.Map;importjava.util.Properties;importjava.util.Vector;importcom.jcraft.jsch.Channel;importcom.jcraft.jsch.ChannelSftp;importcom.jcr
2、aft.jsch.JSch;importcom.jcraft.jsch.JSchException;importcom.jcraft.jsch.Session;importcom.jcraft.jsch.SftpException;publicclassSFTPTool{privateSessionsession;privateChannelchannel;privateChannelSftpsftp;//sftp操作类//privateInputStreamin;//输入流//privateOutputStreamout;//输出流publi
3、cSFTPTool(Stringhost,intport,Stringusername,Stringpassword)throwsException{getConnect(host,port,username,password);}/***连接sftp服务器**@paramhost主机*@paramport端口*@paramuname用户名*@paramusername密码*@return*@throwsException*/publicChannelSftpgetConnect(Stringhost,intport,Stringusernam
4、e,Stringpassword)throwsException{JSchjsch=newJSch();this.session=jsch.getSession(username,host,port);session.setPassword(password);Propertiesconfig=newProperties();config.put("StrictHostKeyChecking","no");//不验证HostKeysession.setConfig(config);try{session.connect();}catch(Exc
5、eptione){if(session.isConnected())session.disconnect();thrownewException("连接服务器失败,请检查主机["+host+"],端口["+port+"],用户名["+username+"],端口["+port+"]是否正确,以上信息正确的情况下请检查网络连接是否正常或者请求被防火墙拒绝.");}channel=session.openChannel("sftp");try{channel.connect();}catch(Exceptione){if(channel.isCon
6、nected())channel.disconnect();thrownewException("连接服务器失败,请检查主机["+host+"],端口["+port+"],用户名["+username+"],密码["+password+"]是否正确,以上信息正确的情况下请检查网络连接是否正常或者请求被防火墙拒绝.");}this.sftp=(ChannelSftp)channel;returnsftp;}/***断开连接*/publicvoiddisConn(){if(null!=this.sftp){this.sftp.disconnect(
7、);this.sftp.exit();this.sftp=null;}if(null!=this.channel){this.channel.disconnect();this.channel=null;}if(null!=this.session){this.session.disconnect();this.session=null;}}/***上传文件**@paramdirectory上传的目录*@paramuploadFile要上传的文件*@paramsftp*/publicvoidupload(Stringdirectory,Stri
8、nguploadFile){//ChannelSftpsftp=map.keySet().iterator().next();//Sessionses