PHP FTP连接但不读取文件夹

问题描述 投票:2回答:1

我有一个代码我试图通过PHP FTP连接连接到不同的服务器。 我知道我实际连接到服务器。

$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

var_dump($login);

当我vardump $login,我得到一个TRUE

当我尝试上传文件时,我收到了“错误上传文件”,因此我尝试在连接上拉取文件列表:

$file_list = ftp_nlist($ftp_conn, ".");
var_dump($file_list);

它只返回bool(false)。 我知道连接有文件,因为我可以使用相同的凭据通过FileZilla查看它们。

知道什么可能是错的吗?服务器设置是否可能不允许我从共享服务器使用此PHP脚本?

php ftp
1个回答
3
投票

ftp_listftp_nlistftp_put)问题的最典型原因是PHP默认为活动模式。在99%的情况下,必须切换到被动模式,以使目录列表和传输工作。使用ftp_pasv function

$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass) or die("Authorization failed");
// turn passive mode on
ftp_pasv($ftp_conn, true) or die("Unable switch to passive mode");

请参阅我在active and passive FTP connection modes上的文章。

© www.soinside.com 2019 - 2024. All rights reserved.