當前位置:首頁 » 文件傳輸 » ftp實現代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ftp實現代碼

發布時間: 2022-08-19 00:46:38

⑴ c#實現FTP下載

FtpWebRequestftpRequest=(FtpWebRequest)WebRequest.Create("ftp://.com/2010/1.exe");//ftp://.com/2010/1.exe是你要下載ftp文件地址
ftpRequest.Credentials=newNetworkCredential("user","user");//前一個user為用戶名,後一個為密碼

⑵ 如何用Java實現FTP伺服器

在主函數中,完成伺服器埠的偵聽和服務線程的創建。我們利用一個靜態字元串變數initDir 來保存伺服器線程運行時所在的工作目錄。伺服器的初始工作目錄是由程序運行時用戶輸入的,預設為C盤的根目錄。
具體的代碼如下:
public class ftpServer extends Thread{
private Socket socketClient;
private int counter;
private static String initDir;
public static void main(String[] args){
if(args.length != 0) {
initDir = args[0];
}else{ initDir = "c:";}
int i = 1;
try{
System.out.println("ftp server started!");
//監聽21號埠
ServerSocket s = new ServerSocket(21);
for(;;){
//接受客戶端請求
Socket incoming = s.accept();
//創建服務線程
new ftpServer(incoming,i).start();
i++;
}
}catch(Exception e){}
}

⑶ FTP 信息代碼全解

120 Service ready in nnn minutes.
服務在NNN時間內可用
125 Data connection already open; transfer starting.
數據連接已經打開,開始傳送數據.

150 File status okay; about to open data connection.
文件狀態正確,正在打開數據連接.

200 Command okay.
命令執行正常結束.

202 Command not implemented, superfluous at this site.
命令未被執行,此站點不支持此命令.

211 System status, or system help reply.
系統狀態或系統幫助信息回應.

212 Directory status.
目錄狀態信息.

213 File status.
文件狀態信息.

214 Help message.On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user. 幫助信息。關於如何使用本伺服器或特殊的非標准命令。此回復只對人有用。

215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document.
NAME系統類型。

220 Service ready for new user.
新連接的用戶的服務已就緒

221 Service closing control connection.
控制連接關閉

225 Data connection open; no transfer in progress.
數據連接已打開,沒有進行中的數據傳送

226 Closing data connection. Requested file action successful (for example, file transfer or file abort).
正在關閉數據連接。請求文件動作成功結束(例如,文件傳送或終止)

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
進入被動模式

230 User logged in, proceed. Logged out if appropriate.
用戶已登入。 如果不需要可以登出。

250 Requested file action okay, completed.
被請求文件操作成功完成

257 "PATHNAME" created.
路徑已建立

331 User name okay, need password.
用戶名存在,需要輸入密碼

332 Need account for login.
需要登陸的賬戶 西門吐血

350 Requested file action pending further information
對被請求文件的操作需要進一步更多的信息

421 Service not available, closing control connection.This may be a reply to any command if the service knows it must shut down.
服務不可用,控制連接關閉。這可能是對任何命令的回應,如果服務認為它必須關閉

425 Can`t open data connection.
打開數據連接失敗

426 Connection closed; transfer aborted.
連接關閉,傳送中止。

450 Requested file action not taken.
對被請求文件的操作未被執行

451 Requested action aborted. Local error in processing.
請求的操作中止。處理中發生本地錯誤。

452 Requested action not taken. Insufficient storage space in system.File unavailable (e.g., file busy).
請求的操作沒有被執行。 系統存儲空間不足。 文件不可用

500 Syntax error, command unrecognized. This may include errors such as command line too long.
語法錯誤,不可識別的命令。 這可能是命令行過長。

501 Syntax error in parameters or arguments.
參數錯誤導致的語法錯誤

502 Command not implemented.
命令未被執行

503 Bad sequence of commands.
命令的次序錯誤。

504 Command not implemented for that parameter.
由於參數錯誤,命令未被執行

530 Not logged in.
沒有登錄

532 Need account for storing files.
存儲文件需要賬戶信息 西門吐血

550 Requested action not taken. File unavailable (e.g., file not found, no access).
請求操作未被執行,文件不可用。

551 Requested action aborted. Page type unknown.
請求操作中止,頁面類型未知

552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).
對請求文件的操作中止。 超出存儲分配

553 Requested action not taken. File name not allowed
請求操作未被執行。 文件名不允許

這種錯誤跟http協議類似,大致是:
2開頭--成功
3開頭--許可權問題
4開頭--文件問題
5開頭--伺服器問題
對大家最有用的:
421:一般出現在連接數多,需稍後在接;
530:密碼錯誤;
550:目錄或文件已經被刪除。

⑷ java中怎麼實現ftp伺服器

我知道apache有個commons net包,其中的FTPClient類可以實現客戶端和服務之間的文件傳輸,但是我如果使用這種方式的話,就得將一台伺服器上的文件傳到我本地,再將這個文件傳到另一台伺服器上,感覺這中間多了一步操作;

⑸ 如何在Linux中部署ftp服務只需要代碼

Linux下ftp服務可以通過搭建vsftpd服務來實現,以CentOS為例,首先查看系統中是否安裝了vsftpd,可以通過執行命令 rpm -qa | grep vsftpd 來查看是否安裝相應的包,如果沒有安裝那麼可以執行 yum -y install vsftpd 來安裝,安裝之後首先創建ftp用戶,比如ftp_test,命令如下:useradd -s /sbin/nologin -d /home/ftp_test ftp_test

目錄盡量不要選擇根目錄下,這里是/home/ftp_test,並且ftp_test這個目錄不要手動創建,否則許可權會有問題,執行命令的時候會自動創建,
可以看到許可權現在是對於ftp_test用戶是可讀可寫可執行的,其他用戶和組下面的都沒有任何許可權,現在為ftp_test用戶創建密碼:passwd ftp_test
執行之後輸入2次密碼確認就設置好了密碼
然後編輯vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf
找到anonymous_enable這個配置項,默認是YES,修改成NO,表示不允許匿名用戶登錄
現在直接保存配置文件,執行 systemctl start vsftpd.service 啟動vsftp服務,然後可以通過命令: systemctl status vsftpd.service 查看ftp服務的運行狀態,現在就可以用ftp客戶端進行連接了,這里用FileZilla測試,連接正常
現在基本的ftp服務就部署完了,客戶端可以正常上傳,下載,修改文件;但是這樣有個問題就是所有的目錄都暴露給客戶端了,雖然客戶端不能隨意修改刪除其餘的文件,但是因為目錄可見,所以總會有一些風險,所以接下來還需要配置讓ftp用戶只在自己的家目錄下面活動,而無法查看其它任何目錄,同樣是打開配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES這個配置,默認是注釋的,這里去掉注釋,表示只讓用戶在自己的目錄裡面活動,如果只是保存這一個配置的話,用ftp連接客戶端會返回500
OOPS: ftp chaodiquan.com /vsftpd: refusing to run with writable root inside
chroot()的錯誤,即禁止運行在可寫的家目錄中,因為剛才ftp_test這個目錄有w許可權,而現在我們使用的vsftpd版本是3.0.2
屬於比較新的版本,為了安全性做了一些限制,如果你此時想通過 chmod a-w /home/ftp_test 來去掉目錄的寫許可權,那麼連接成功是沒問題的,但是無法上傳文件了,所以網上很多說修改許可權的方法是不可取的,正確的做法是應該在下面添加一行配置allow_writeable_chroot=YES表示允許對家目錄的寫許可權,
配置完這兩項以後保存退出,然後執行 systemctl restart vsftpd.service 重啟vsftpd服務,現在重新使用ftp連接就成功了,並且任何操作也是沒問題的
現在可以看到上面的路徑是一個/,對於ftp用戶來說也就是根目錄了,只能在這個目錄下操作,而無法跳出這個目錄
以上就是vsftpd服務的基本搭建過程,實際使用時可以分配多個用戶

⑹ 急!用VB代碼實現FTP的上傳和下載(高分)

要實現在這個代碼太多,在這里發有點不太現實,VB 實現 FTP 用 WinSock 控制項或API。
做該類程序主要是握手控制,即返回值的處理並做相應傳輸,另外就是了解每個 FTP 命令的作用,這樣做個 FTP 服務端或客戶端都不是什麼難事。

⑺ java FTP下載文件在代碼中如何實現知道下載完成

(KmConfigkmConfig,StringfileName,StringclientFileName,OutputStreamoutputStream){
try{
StringftpHost=kmConfig.getFtpHost();
intport=kmConfig.getFtpPort();
StringuserName=kmConfig.getFtpUser();
StringpassWord=kmConfig.getFtpPassword();
Stringpath=kmConfig.getFtpPath();
FtpClientftpClient=newFtpClient(ftpHost,port);//ftpHost為FTP伺服器的IP地址,port為FTP伺服器的登陸埠,ftpHost為String型,port為int型。
ftpClient.login(userName,passWord);//userName、passWord分別為FTP伺服器的登陸用戶名和密碼
ftpClient.binary();
ftpClient.cd(path);//path為FTP伺服器上保存上傳文件的路徑。
try{
TelnetInputStreamin=ftpClient.get(fileName);
byte[]bytes=newbyte[1024];
intcnt=0;
while((cnt=in.read(bytes,0,bytes.length))!=-1){
outputStream.write(bytes,0,cnt);
}
//##############################################
//這里文件就已經下載完了,自己理解一下
//#############################################

outputStream.close();
in.close();
}catch(Exceptione){
ftpClient.closeServer();
e.printStackTrace();
}
ftpClient.closeServer();
}catch(Exceptione){
System.out.println("下載文件失敗!請檢查系統FTP設置,並確認FTP服務啟動");
}
}

⑻ VB找一段FTP代碼實現

用VB代碼實現對FTP的上傳和下載.在網上找到了個方法.
這個方法是用INTERNET傳輸控制項來實現的.
添加了INTERNET傳輸控制項後VB代碼如下"
'初始化控制項的屬性:
With Inet1
.URL = "ftp://192.168.0.50"
.UserName = "user"
.Password = "123"
.Protocol = icFTP
.RequestTimeout = 120
End With
,在FTP根目錄下創建文件夾abc
Call Inet1.Execute(, "mkdir abc")
,在FTP根目錄下載123.txt到D盤
Call Inet1.Execute(, "get 123.txt d:\123.txt")
'把d:\123.txt上傳到FTP根目錄
Call Inet1.Execute(, "put d:\123.txt 123.txt")
'把d:\123.txt上傳到FTP根目錄
Call Inet1.Execute(, "send d:\123.bmp")

⑼ 我想登錄一個ftp然後把某個目錄的所有文件考到另一個ftp的目錄的某個文件夾下用java代碼實現

用的commons-net包中的FTPClient
ftp1為拷貝目錄,ftp2為被拷貝目錄
你先登錄ftp2調用ftp1,
ftpClient1.changeWorkingDirectory(path);
InputStream inputStream = ftpClient1.retrieveFileStream(file.getName());
用這個代碼應該可以從ftp1中獲得一個inputStream ,在ftp2中可以做上傳操作
目錄的話ftp2還要做遞歸存放到list中,ftp2遍歷上傳. 其實我也沒做這個,希望思路有點幫助,應該可以實現.good luck!~~~

⑽ php中如何實現ftp上傳基礎代碼

p工具我們都用過是用來上傳文件的,那麼在php中如何用代碼實現呢,下面簡單介紹一個最基礎最簡單的列子,首先根據我們使用ftp工具來說,實現文件上傳需要打開ftp工具->輸入ftp地址,埠號,賬號,密碼登陸ftp->從本地選擇相應文件上傳到ftp相應目錄,php中要實現這么一個簡單的功能無非也是這樣。
第一步:打開ftp

$ip="101.101.101.101";
$name="name";
$pwd="mima";
$con=ftp_connect($ip,"21")
or("連接失敗");

第二步:登陸ftp

ftp_login($con,$name,$pwd);

第三步:上傳本地test.php文件到ftp
image目錄下

ftp_put($con,"image/test.php","test.php",FTP_ASCII);

此時在ftp上的image目錄下可以看到test.php文件了,當然這里上傳文件,可以擴展下寫個上傳表單,將表單附件上傳ftp這樣就更方便,這里只作為一個文件最基礎上傳ftp功能。