代码之家  ›  专栏  ›  技术社区  ›  vise

ftp列表命令不工作

  •  16
  • vise  · 技术社区  · 15 年前

    我正在使用以下代码↓连接到FTP服务器并获取文件列表。它在我的本地机器(Fedora11)上工作正常,但在生产(运行Ubuntu)上不工作,在生产中ftp-nlist方法返回false。

    $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)
    
    1 回复  |  直到 15 年前
        1
  •  42
  •   vise    15 年前

    结果发现这与服务器的防火墙配置有关。 登录后切换到被动模式,工作正常。

    ftp_pasv($connectionId, true);