導航:首頁 > 編程語言 > 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連接相關的資料

熱點內容
c開源cf源碼 瀏覽:947
如何取消掉添加進app資源庫 瀏覽:728
上海政務APP叫什麼 瀏覽:812
黑馬程序員一線薪資 瀏覽:109
滴滴app有青桔優惠券怎麼用 瀏覽:123
刪哪幾個文件夾加速 瀏覽:28
創建電影源碼爬取項目 瀏覽:453
java多餘的空格 瀏覽:83
手機軟體連接雲伺服器 瀏覽:888
內圓弧編程實例 瀏覽:48
餅干pdf 瀏覽:423
kylin源碼大全 瀏覽:687
android構建工具 瀏覽:422
zigy命令行選項不兼容 瀏覽:561
加密系統能錄屏嗎 瀏覽:190
安卓淘寶點進去跳鏈接如何關閉 瀏覽:786
u盤加密了手機讀取不了 瀏覽:947
oracle11g啟動命令 瀏覽:931
怎麼把視頻傳到自己的文件夾 瀏覽:700
福州電動車在哪個app上搖號 瀏覽:818