导航:首页 > 编程语言 > sftpjava连接

sftpjava连接

发布时间:2022-04-20 05:55:49

java实现sftp功能,linux上可以,solaris异常

状态集合I的a弧转换,表示为move(I,a)定义为状态集合J,其中J是所有那些可从I的某一状态经过一条a弧而到达的状态的全体。
定义Ia = ε-closure(move(I,a))

㈡ java 实现sftp上传文件 都有哪些方式

JSch支持三种文件传输模式:

OVERWRITE 完全覆盖模式,这是JSch的默认文件传输模式,即如果目标文件已经存在,传输的文件将完全覆盖目标文件,产生新的文件。
RESUME
恢复模式,如果文件已经传输一部分,这时由于网络或其他任何原因导致文件传输中断,如果下一次传输相同的文件,

则会从上一次中断的地方续传。

APPEND 追加模式,如果目标文件已存在,传输的文件将在目标文件后追加。

㈢ linxu服务器可以通过java sftp连接windows本地么

1首先打开linux客户端工具,新建一个连接
2IP地址填写我们本机的IP地址

3创建完毕,打开刚才创建的连接进行连接

4连接打开,在命令行输入 sfpt 服务器IP地址

5进入用户名填写处,填写我们需要传输文件的服务器用户名

6接着填写登录密码

7显示如下标志表明,已经登录成功,使用put 文件路径即可实现文件传输

㈣ 用java实现sftp的客户端,channel.connect()的时候,抛出异常,收到信息过长,然后就没连上。怎么回事

首先,不太明确你要问什么?
J2EE是java企业级应用,它里面关于安全方面的东西很多!
权限管理?信息安全?授权服务?访问控制?数据机密性?
要是你想全部都了解!
在这里提问是不行的!太庞杂了!
如果 你要问的是 java ftp传输过程中的一些安全注意事项!
这里建议 你使用 apache的开源项目。他们把基于java的ftp操作都封装好了!
安全相关都有保证。
我下面可以给你复制一段 ftp下载远程终端的java代码!你可以参考一下!

需要下载 org.apache.commons.net包
可以到 网站下载!
/**
* Description: 从FTP服务器下载文件
* @param ip FTP服务器的ip地址
* @param port FTP服务器端口,默认为:21
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath FTP服务器上的相对路径
* @param fileName 要下载的文件名
* @param localPath 下载后保存到本地的路径
* @return
*/
public static boolean downFile(String ip, int port,String username, String password, String remotePath,String fileName,String localPath,String localfile) {
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ip, port);
//处理中文转码操作
ftp.setControlEncoding("GBK");

FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");

ftp.login(username, password);//登录

reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}

ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();
for(int i = 0; i < fs.length; i++){
FTPFile ff = fs[i];
if(ff.getName().equals(fileName)){
String localfilename = localfile;//按规则设置文件名这里你要下载文件,可以自己定义下载之后的文件名
File localFile = new File(localPath+File.separator+localfilename);

OutputStream is = new FileOutputStream(localFile);
//此处retrieveFile的第一个参数由GBK转为ISO-8859-1编码。否则下载后的文件内容为空。
ftp.retrieveFile(new String(ff.getName().getBytes("GBK"),"ISO-8859-1"), is);

is.close();
}
}
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}

㈤ 使用java连接SFTP服务时,报错,错误信息:com.jcraft.jsch.JSchException: Algorithm negotiation fail

您好,我也遇到同一个问题,您那边解决了吗?求解

㈥ 用jsch连接sftp得时候连接不上是怎么回事

首先这里需要介绍一个新朋友给大家,就是他JSch。
这里简单介绍一下JSch,他是是SSH2的一个纯Java实现。Java中可以通过使用JSch来连接到sshd 服务器上,并进行文件的下载删除上传等操作。

2
JSch下载地址为可以直接网络一下。
找到Download,如图所示:
这里我们看到有两个可以下载的,一个是.zip,一个是.jar。
jsch-0.1.53.zip:为JSch的源码压缩包,有兴趣的码友可以下载下来研究一下。
jsch-0.1.53.jar:为JSch的编译好的jar包,开发时放到工程中即可。
这里我们就直接下载jsch-0.1.53.jar了。

END
JSch使用

我们将下载好的jsch-0.1.53.jar包放在我们的工程下方,并将jar包引入到工程中。

在工程中定义一个连接SFTP的类,这里我们定义为SFTPUtil.java。
大家可以根据自己需要进行定义。

首先我们需要在类中定义几个静态变量。
主机地址、端口号、用户名、密码

接下来我们定义链接到该服务器的方法名,这里命名该方法名为connect。
创建服务器连接的过程大致为一下几点:
1、创建session,将服务器地址信息放入session;
2、建立连接;
3、打开channel;
4、链接成功;

㈦ 你好!我也碰到了SFTP传输,纯java可以,android就不行,纠结好几天了,希望你能尽快帮我解答,谢谢!

我就是用sftp传输的,Android下,就是用手机录音,然后把录下来的音频文件保存到服务器里,给你源代码吧,

importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.util.Date;
importjava.util.Properties;
importjava.util.Vector;


importandroid.content.Context;
importandroid.telephony.TelephonyManager;
importandroid.text.format.DateFormat;
importandroid.text.format.Time;

importcom.jcraft.jsch.Channel;
importcom.jcraft.jsch.ChannelSftp;
importcom.jcraft.jsch.JSch;
importcom.jcraft.jsch.Session;
importcom.jcraft.jsch.SftpException;


publicclassSftp_upload{

/**
*连接sftp服务器
*@paramhost主机
*@paramport端口
*@paramusername用户名
*@parampassword密码
*@return
*/
publicChannelSftpconnect(Stringhost,intport,Stringusername,Stringpassword){

ChannelSftpsftp=null;
try{
JSchjsch=newJSch();
jsch.getSession(username,host,port);
SessionsshSession=jsch.getSession(username,host,port);
System.out.println("Sessioncreated.");
sshSession.setPassword(password);
PropertiessshConfig=newProperties();
sshConfig.put("StrictHostKeyChecking","no");
sshSession.setConfig(sshConfig);
sshSession.connect();
System.out.println("Sessionconnected.");
System.out.println("OpeningChannel.");
Channelchannel=sshSession.openChannel("sftp");
channel.connect();
sftp=(ChannelSftp)channel;
System.out.println("Connectedto"+host+".");
//System.out.println("登录成功");
}catch(Exceptione){

}
returnsftp;
}

/**
*上传文件
*@paramdirectory上传的目录
*@paramuploadFile要上传的文件
*@paramsftp
*/
publicvoipload(Stringdirectory,StringuploadFile,ChannelSftpsftp){

try{
sftp.cd(directory);
Filefile=newFile(uploadFile);

StringcurrentTime=DateFormat.format("yyyy_MM_dd_hh_mm_ss",newDate()).toString();//获取时间
Stringfilename=currentTime+".wav";//文件名为当前时间来保存
sftp.put(newFileInputStream(file),filename);



System.out.println("上传成功!");
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*下载文件
*@paramdirectory下载目录
*@paramdownloadFile下载的文件
*@paramsaveFile存在本地的路径
*@paramsftp
*/
publicvoiddownload(Stringdirectory,StringdownloadFile,StringsaveFile,ChannelSftpsftp){

try{
sftp.cd(directory);
Filefile=newFile(saveFile);
sftp.get(downloadFile,newFileOutputStream(file));
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*删除文件
*@paramdirectory要删除文件所在目录
*@paramdeleteFile要删除的文件
*@paramsftp
*/
publicvoiddelete(Stringdirectory,StringdeleteFile,ChannelSftpsftp){

try{
sftp.cd(directory);
sftp.rm(deleteFile);
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*列出目录下的文件
*@paramdirectory要列出的目录
*@paramsftp
*@return
*@throwsSftpException
*/
publicVectorlistFiles(Stringdirectory,ChannelSftpsftp)throwsSftpException{

returnsftp.ls(directory);

}

//上传文件


publicstaticvoidSftp_server(Stringfile,Stringimsi){

StringImsi=imsi;
Sftp_uploadsf=newSftp_upload();
Stringhost="192.168.1.60";
intport=22;
Stringusername="root";
Stringpassword="123456";
Stringdirectory="/data/test/wav";
//StringuploadFile="c:\audiocheck\test.wav";
StringuploadFile=file;
//StringdownloadFile="/data/test/wav/lame.sh";
//StringsaveFile="c:\audiocheck\content.txt";
//StringdeleteFile="c:\audiocheck\content.txt";
ChannelSftpsftp=sf.connect(host,port,username,password);

//sf.download(directory,downloadFile,saveFile,sftp);
//sf.delete(directory,deleteFile,sftp);

try{
sftp.cd(directory);
sftp.mkdir(Imsi);//创建目录
System.out.println("finished");
}catch(Exceptione){
e.printStackTrace();
}
directory="/data/test/wav/"+imsi;
sf.upload(directory,uploadFile,sftp);//上传文件到服务器

}

}

这个就是源代码,

然后上传的时候用的代码

//imsi也就是手机的型号来创建文件夹的,这些你都可以修改的。

Stringfile=mWorkdir+"/"+"resFile.wav";//要上传的文件
Sftp_upload.Sftp_server(file,imsi);//上传文件
System.out.println("已上传");

㈧ java ftp 和 sftp的区别

FTP是文件传输协议。在网站上,如果你想把文件和人共享,最便捷的方式莫过于把文件上传到FTP服务器上,其他人通过FTP客户端程序来下载所需要的文件。 FTP进行文件传输需要通过端口进行。一般所需端口为: 1. 控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。 2. 数据链路---TCP端口20。数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。 FTP为了适应不同的网络环境,支持主动连接和被动连接两种模式。这两种模式都主要针对数据链路进行的,跟控制链路无关。 FTP的安全隐患: 一、FTP服务器软件漏洞。 二、明文口令。 三、FTP旗标。 四、通过FTP服务器进行端口扫描。 五、数据劫持。 FTP的安全策略: 一、使用较比安全的系统和FTP服务软件。 二、使用密文传输用户名和口令。 三、更改服务软件的旗标。 四、加强协议安全性。 SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟ftp几乎语法功能一样。 SFTP是SSH的一部分,是一种传输档案至Blogger服务器的安全方式。它...

㈨ java连接Sftp服务器后,使用第三方jar com.jcraft.jsch.ChannelSftp;用get()方法获取的InputStream流为空

java连接Sftp服务器后,使用第三方jar com.jcraft.jsch.ChannelSftp;用get()方法获取的InputStream流为空,检查下第3方初始化这些写对没有,或者就是没得到流,打印看看,解决问题。

阅读全文

与sftpjava连接相关的资料

热点内容
c523压缩比 浏览:543
命令语气的人什么心态 浏览:435
程序员喜欢留指甲吗 浏览:516
七牛云服务器收费标准 浏览:627
时光相册加密空间密码忘记 浏览:474
华为云为用户提供的服务云服务器 浏览:634
minecraftlinux服务器搭建 浏览:376
linux命令新建文件 浏览:708
长线pdf 浏览:607
程序员电脑支持手写 浏览:414
解压头戴式耳机推荐 浏览:344
纸条app上怎么样看对方主页 浏览:883
编译英语单词怎么写 浏览:249
编译原理和汇编原理的区别 浏览:864
如何给加密的pdf解密 浏览:770
华为盒子时间同步服务器地址 浏览:95
python处理excel乱码 浏览:391
mysql的命令行 浏览:822
jpeg采用什么算法 浏览:701
程序员红轴薄膜 浏览:306