2009-10-22 21 views
16

Estoy usando el siguiente código ↓ para conectarme a un servidor ftp y obtener una lista de archivos. Funciona bien en mi equipo local (Fedora 11) pero no en producción (con Ubuntu) donde el método ftp_nlist devuelve falso.comando ftp_nlist no funciona

$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); 

Devuelve una matriz de archivos en mi máquina y falsa en la producción.

Lo que lo hace particularmente molesto es que en ambos casos se las arregla para conectarse e iniciar sesión con éxito.

var_dump($loginResult); 

vuelve

bool(true) 

Respuesta

42

Resulta que esto estaba relacionado con la configuración del cortafuegos del servidor. Cambió al modo pasivo después de iniciar sesión y funcionó bien.

ftp_pasv($connectionId, true); 
+2

Mismo problema para mí. Muchas gracias por este consejo! –

+0

Publicaciones antiguas pero consejos decentes. Funcionó como por arte de magia. – Edward

+0

increíble !!!!!!!! –

Cuestiones relacionadas