php - ftp_nlist 命令不工作

标签 php ftp

我正在使用以下代码↓ 连接到 ftp 服务器并获取文件列表。它在我的本地计算机 (Fedora 11) 上运行正常,但在 ftp_nlist 方法返回 false 的生产环境(运行 Ubuntu)上运行不正常。

$ftpInfo = array('directory' => 'somewebsite.com',
                 'user' => 'someuser',
                 'password' => 'somepass',
                 'port' => 21,
                 'timeout' => 30);
$connectionId = ftp_connect($ftpInfo['directory'], 
                            $ftpInfo['port'], 
                            $ftpInfo['timeout']);

$loginResult = ftp_login($connectionId, $ftpInfo['user'], $ftpInfo['password']);

$files = ftp_nlist($connectionId, '.');

var_dump($files);
ftp_close($connectionId);

在我的机器上返回一个文件数组,在生产环境中返回 false。

特别烦人的是,在这两种情况下,它都能成功连接和登录。

var_dump($loginResult);

返回

bool(true)

最佳答案

原来这与服务器的防火墙配置有关。 登录后切换到被动模式,一切正常。

ftp_pasv($connectionId, true);

关于php - ftp_nlist 命令不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609140/

相关文章:

java - 使用 java : corrupted data 从 FTP 站点下载文件

php - Memcache->get 返回不同的数组

php - 从 mysql 表中获取 while() 循环金额的累计总额(通过加法)

php - 如何更新下拉列表中的特定行?

security - powershell 和 secureString 类

java - Android FTP 库

php - 为什么检查字符串是否为空的函数总是返回true?

php - 将多个YouTube视频嵌入到无镶边播放器提示中

iis - 让 FTP 在 Azure VM 上运行,克服 ftp 客户端上的 'connection closed'

delphi - Indy TIdFTP - EIdReplyRFCError - "Can' t 打开数据连接”