[精讚] [會員登入]
3629

[PHP] 使用FTP

PHP 上使用 FTP 的寫法

分享此文連結 //n.sfs.tw/10963

分享連結 [PHP] 使用FTP@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 13:26:38 最後編修
2017-04-07 11:51:06 By 張○○
 

自動目錄

傳統上,網頁檔案上傳方法是把php的暫時檔拷到上傳目錄。可是如果在伺服器間傳檔,可使用 FTP 來處理。

連線

參數分別是 HOST, PORT, TIMEOUT

$conn = ftp_connect("10.200.0.1", 21, 60) or die("Connect FTP Server Fail"); 

登入

$ok =ftp_login($conn, "account", "password");

if($ok) // logined

if(!$ok) // login failed

使用被動模式

這個指令必須在ftp_login 後立即使用,第2個參數設為true即為被動模式,設為false關閉被動模式。

ftp_pasv($conn, true);

路徑

剛登入的路徑應該在你登入account的家目錄 

$pwd= ftp_pwd($conn);  // /home/your_account/

//改變路徑 chdir  進到 /home/youracc/path/to/

ftp_chdir( $conn,  "path/to");

//移到上一層 /home/youracc/path/

ftp_cdup( $conn);

上傳及下載

// 取回檔案,使用二進位的方式

if (ftp_get($conn, "local_file", "server_file", FTP_BINARY)) {
   echo "Successfully written to local_file\n";
} else {
   echo "There was a problem\n";
}

//上傳一個檔案,注意傳送模式為 FTP_ASCII

if (ftp_put($conn, "remote_file", "local_file", FTP_ASCII)) {
   echo "successfully uploaded file\n";
} else {
   echo "There was a problem while uploading file\n";
}

// 刪除檔案
ftp_delete($conn, "FILENAME");

關閉連結

ftp_close($conn);

補充說明

上傳檔案有 ftp_put, ftp_fput, ftp_nb_put, ftp_nb_fput 這幾個函數,同樣的下載也有對應的四個函數,差別在哪?
ftp_put -- 上傳檔案
ftp_fput -- 上傳檔案指標
ftp_nb_put  -- 非同步法上傳檔案
ftp_nb_fput  -- 非同步法上傳檔案指標

延伸閱讀

FTP的主動模式及被動模式

參考資料

[1] PHP 官網 http://tw.php.net/manual/en/ref.ftp.php

END

你可能感興趣的文章

[phpmyadmin] 錯誤:您應升級到 MySQL 5.5.0 或更新版本 使用phpmyadmin4出現錯誤:您應升級到 MySQL 5.5.0 或更新版本的解決方式

[PHP] 好用的php常數 介紹PHP中 __DIR__, __FILE__, __FUNCTION__, __CLASS__, __METHOD__, __LINE__, __NAMESPACE__等常數

[PHP] 位元運算 (Bitwise operation)及和PERL比較 PHP 的位元運算,及和PERL比較整理

Smarty安裝 smarty 是著名的樣版引擎,非常的好用,用多了突然發現拿掉smarty反而不會寫php了,以下是安裝過程..

[PHP] 解析二進位圖片 使用php來解析png圖片,把資料寫在16進位格式

作業上傳程式 提供學生作業上傳的程式

隨機好文

[jQuery] select 元件的取值及給值 html中的元件select,在jquery中要如何使用?

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

看懂DSUB DVI HDMI USB等各式影音接頭 看懂DSUB DVI HDMI等各式影音接頭

問問題 問問題其實內涵很深,我悟了很久才懂。 有人問題的目的並不一定是想要得到答案,有時只是純粹想問問題..

此一時彼一時 我是不是易怒的人,其實我也不知道,總之我常會失控,不知道自己在幹嘛。這近生活過得浮浮的,不是很踏實,總會想太多,我甚至會