JAVA檔案上傳FTP遠端伺服器

2021-08-27 16:10:12 字數 1163 閱讀 3149

方法一:字串檔案流不生成本地檔案

ftpclient ftpclient = new ftpclient();

try catch (exception e) finally catch (exception e)

}}

ftpclient.enterlocalpassivemode();這個方法的意思就是每次資料連線之前,ftp client告訴ftp server開通乙個埠來傳輸資料。為什麼要這樣做呢,因為ftp server可能每次開啟不同的埠來傳輸資料,但是在linux上,由於安全限制,可能某些埠沒有開啟,所以就出現阻塞。

q:用ftpclient,執行到ftp.storefile(filename, inputfile);無反應了

a: ftpclient.enterlocalpassivemode();

ftp.storefile(filename, inputfile);問題解決

原因是:ftp協議有兩種工作方式:port方式和pasv方式,中文意思為主動式和被動式。 port(主動)方式的連線過程是:客戶端向伺服器的ftp埠(預設是21)傳送連線請 求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,客戶端在命令鏈路上用port 命令告訴伺服器:「我開啟了***x埠,你過來連線我」。於是伺服器從20埠向客戶端的 ***x埠傳送連線請求,建立一條資料鏈路來傳送資料。 pasv(被動)方式的連線過程是:客戶端向伺服器的ftp埠(預設是21)傳送連線請 求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,伺服器在命令鏈路上用pasv 命令告訴客戶端:「我開啟了***x埠,你過來連線我」。於是客戶端向伺服器的***x埠 傳送連線請求,建立一條資料鏈路來傳送資料。

方法二:本地檔案上傳遠端伺服器

public void uploadfile(string remotepath, string localpath, string filenames)

throws exception

outstream.flush();

} catch (exception e) finally

logger.info("結束[" + localpath + "]sftp傳輸到[" + remotepath + "]");

} else

}

java檔案上傳ftp伺服器

description 向ftp伺服器上傳檔案 version 1.0 param url ftp伺服器hostname param port ftp伺服器端口 param username ftp登入賬號 param password ftp登入密碼 param path ftp伺服器儲存目錄 p...

java使用ftp上傳檔案

linux伺服器配置 安裝ftp yum install vsftpd 啟動服務 service vsftpd start 開機啟動 chkconfig level 35 vsftpd on 設定許可權 vi etc vsftpd vsftpd.conf 將配置檔案中 anonymous enabl...

關於java通過ftp上傳檔案到伺服器

建立ftp物件 ftpclient ftpclient new ftpclient 鏈結 ftpclient.connect 172.21 登入ftp伺服器 使用使用者和密碼 ftpclient.login oneday root 解決防火牆問題 ftpclient.enterlocalpassiv...