FTP 工具是我們常用來上傳檔案的工具,但在 PHP 中該如何以程式碼實現自動化上傳呢?本文將透過一個最基礎的範例,帶你了解核心流程。其邏輯與手動操作 FTP 軟體如出一轍:建立連線 → 登入驗證 → 指定本地與遠端路徑 → 執行上傳。
首先使用 ftp_connect() 函式連線至 FTP 伺服器,需提供 IP 位址與連接埠(預設為 21)。若連線失敗,腳本將終止並提示錯誤。
<?php
$ip = "101.101.101.101";
$port = 21;
$conn = ftp_connect($ip, $port) or die("無法連線至 FTP 伺服器");
?>
連線成功後,使用 ftp_login() 提供帳號密碼進行身分驗證。
<?php
$username = "your_username";
$password = "your_password";
$login_result = ftp_login($conn, $username, $password);
if (!$login_result) {
die("FTP 登入失敗,請檢查帳號密碼");
}
?>
使用 ftp_put() 將本地檔案上傳至伺服器指定目錄。參數依序為:連線資源、遠端儲存路徑(含檔名)、本地檔案路徑、傳輸模式(ASCII 或 BINARY)。
<?php
// 以 ASCII 模式上傳 test.php 至遠端 image 目錄下,命名為 itest/test.php
$upload = ftp_put($conn, "image/itest/test.php", "test.php", FTP_ASCII);
if ($upload) {
echo "檔案上傳成功!";
} else {
echo "檔案上傳失敗,請檢查權限或路徑";
}
// 關閉連線
ftp_close($conn);
?>
此範例展示最核心的上傳邏輯。實際專案中,建議搭配 HTML 表單 <input type="file"> 接收使用者上傳的檔案,再透過 $_FILES 陣列取得暫存路徑,動態帶入 ftp_put(),即可打造完整的網頁式 FTP 上傳功能。此外,別忘記加入錯誤處理、檔案類型驗證與大小限制,確保系統安全穩定。