我的 FTP 服务器总是返回 "bool(false)" 而不是向我展示目录列表。我必须在 $login_result = ftp_login(...); 行之后添加
ftp_pasv($conn_id, true);。
之后它就正常工作了。
示例 #1 FTP 示例
<?php
// 设置基本连接
$ftp = ftp_connect($ftp_server);
// 使用用户名和密码登录
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);
// 检查连接
if ((!$ftp) || (!$login_result)) {
echo "FTP 连接失败!";
echo "尝试连接到 $ftp_server 以用户 $ftp_user_name";
exit;
} else {
echo "已连接到 $ftp_server,以用户 $ftp_user_name";
}
// 上传文件
$upload = ftp_put($ftp, $destination_file, $source_file, FTP_BINARY);
// 检查上传状态
if (!$upload) {
echo "FTP 上传失败!";
} else {
echo "已将 $source_file 上传到 $ftp_server 作为 $destination_file";
}
// 关闭 FTP 连接
ftp_close($ftp);
?>
我的 FTP 服务器总是返回 "bool(false)" 而不是向我展示目录列表。我必须在 $login_result = ftp_login(...); 行之后添加
ftp_pasv($conn_id, true);。
之后它就正常工作了。
我使用以下代码成功连接到 "lftp" 服务器并查看完整的目录列表。
ftp_pasv($conn_id, true); 技巧对 lftp 服务器也很有效 :)
<?php
// 设置基本连接
$ftp_server = "example.com";
$conn_id = ftp_ssl_connect($ftp_server);
// 使用用户名和密码登录
$ftp_user_name = "myuser";
$ftp_user_pass = "mypass";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, true);
// 检查连接
if ((!$conn_id) || (!$login_result)) {
echo "FTP 连接失败!";
echo "尝试连接到 $ftp_server 以用户 $ftp_user_name";
exit;
} else {
echo "已连接到 $ftp_server,以用户 $ftp_user_name";
}
$buff = ftp_rawlist($conn_id, '.');
var_dump($buff);
ftp_close($conn_id);
?>
谢谢,
Prajakta