0

我正在尝试从仅接受通过显式 TLS 的 FTP 连接的 FTP 服务器获取目录列表。

<?php
$ftp_server = "...";
$ftp_user_name = "...";
$ftp_user_pass = "...";

// set up basic ssl connection
$conn_id = ftp_ssl_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
echo $login_result . "<br/>";

// change dir to "data"
$chdir_result = ftp_chdir($conn_id, "data");
echo $chdir_result . "<br/>";
echo ftp_pwd($conn_id) . "<br/>"; 

// get contents of the current directory
$contents = ftp_rawlist($conn_id, ".");

// output $contents
var_dump($contents);

// close the ssl connection
ftp_close($conn_id);
?>

该脚本挂起大约一分钟并给出以下输出:

 1
 1
 /data
 bool(false)

我也尝试使用 ftp_nlist 和 print_r 无济于事。(print_r 只是打印空白)。

4

1 回答 1

1

如果您在服务器上启用了防火墙或 NAT,那么您必须使用被动模式进行 ftp 连接

在 ftp_rawlist() 之前添加这个

ftp_pasv( $conn_id, true );
于 2013-06-17T16:15:27.557 回答