php 实现ftp上传
使用 PHP 实现 FTP 上传
PHP 提供了内置的 FTP 函数库,可以方便地实现 FTP 文件上传功能。以下是实现 FTP 上传的详细方法。
连接 FTP 服务器
需要先建立与 FTP 服务器的连接,使用 ftp_connect 函数指定服务器地址和端口(默认为 21)。
$ftp_server = "ftp.example.com";
$ftp_port = 21;
$ftp_conn = ftp_connect($ftp_server, $ftp_port);
if (!$ftp_conn) {
die("无法连接到 FTP 服务器");
}
登录 FTP 服务器
使用 ftp_login 函数进行登录,需要提供用户名和密码。
$ftp_username = "username";
$ftp_password = "password";
$login = ftp_login($ftp_conn, $ftp_username, $ftp_password);
if (!$login) {
die("FTP 登录失败");
}
设置被动模式
被动模式(PASV)可以避免防火墙问题,使用 ftp_pasv 函数启用。
ftp_pasv($ftp_conn, true);
上传文件到 FTP 服务器
使用 ftp_put 函数上传本地文件到 FTP 服务器,需指定本地文件路径、远程文件路径和传输模式(FTP_ASCII 或 FTP_BINARY)。
$local_file = "localfile.txt";
$remote_file = "remotefile.txt";
$upload = ftp_put($ftp_conn, $remote_file, $local_file, FTP_BINARY);
if (!$upload) {
die("文件上传失败");
} else {
echo "文件上传成功";
}
关闭 FTP 连接
上传完成后,使用 ftp_close 函数关闭连接。
ftp_close($ftp_conn);
完整示例代码
以下是一个完整的 PHP FTP 上传示例:
$ftp_server = "ftp.example.com";
$ftp_username = "username";
$ftp_password = "password";
$local_file = "localfile.txt";
$remote_file = "remotefile.txt";
// 连接 FTP 服务器
$ftp_conn = ftp_connect($ftp_server) or die("无法连接到 FTP 服务器");
// 登录 FTP
$login = ftp_login($ftp_conn, $ftp_username, $ftp_password) or die("FTP 登录失败");
// 启用被动模式
ftp_pasv($ftp_conn, true);
// 上传文件
if (ftp_put($ftp_conn, $remote_file, $local_file, FTP_BINARY)) {
echo "文件上传成功";
} else {
echo "文件上传失败";
}
// 关闭连接
ftp_close($ftp_conn);
错误处理与验证
在实际应用中,建议增加文件存在性检查和错误处理逻辑。
if (!file_exists($local_file)) {
die("本地文件不存在");
}
if (!ftp_size($ftp_conn, $remote_file)) {
echo "远程文件不存在,开始上传";
} else {
echo "远程文件已存在,跳过上传";
}
通过以上步骤,可以轻松实现 PHP 的 FTP 文件上传功能。







