Es más, usando el SmartFTP y habilitando la opción "Force Server IP for PASV Mode" se conecta al FTP y logra subir archivos.
Sin embargo a través de PHP me da los siguientes errores:
Warning: ftp_put() [function.ftp-put]: php_connect_nonb() failed: No error (0) in C:\Inetpub\wifi\prueba.php on line 25
Warning: ftp_put() [function.ftp-put]: Entering Passive Mode (172,36,0,13,14,247). in C:\Inetpub\wifi\prueba.php on line 25
No se pudo subir el archivo en modo ASCII...
Warning: ftp_put() [function.ftp-put]: php_connect_nonb() failed: No error (0) in C:\Inetpub\wifi\prueba.php on line 30
Warning: ftp_put() [function.ftp-put]: Entering Passive Mode (172,36,0,13,15,7). in C:\Inetpub\wifi\prueba.php on line 30
No se pudo subir el archivo en modo BINARY...
Este es el código que utilizo:
Código PHP:
<?php
set_time_limit(0);
$urlftp="xxx.xxx.xxx.xxx"; //IP publica
//$urlftp=gethostbyaddr($urlftp);
$portftp="2120";
$userftp="user";
$passftp="pass";
$carpeta="carpeta";
echo "Intentando conectar al servidor $urlftp<br>";
if ($ftp=ftp_connect ($urlftp,$portftp)) {
echo "Conecta al FTP<br>";
if ($ftplog=ftp_login ($ftp,$userftp,$passftp)) {
echo "Se loggea al FTP<br>";
//Añadido
if ($ftp_dir=ftp_pwd($ftp)) {
echo "La carpeta actual es $ftp_dir<br>";
} else {
echo "No se puede obtener informacion sobre la carpeta actual...<br>";
}
if ($ftpdir=ftp_chdir ($ftp,$carpeta)) {
echo "Existe la carpeta y se dirije a ella<br>";
//Subire un archivo...
echo "Entrando en modo pasivo...<br>";
ftp_pasv ($ftp,true);
if (ftp_put ($ftp,"arriba.gif","arriba.gif",FTP_ASCII)) {
echo "Se subió el archivo en modo ASCII...<br>";
} else {
echo "No se pudo subir el archivo en modo ASCII...<br>";
}
if (ftp_put ($ftp,"abajo.gif","abajo.gif",FTP_BINARY)) {
echo "Se subió el archivo en modo BINARY...<br>";
} else {
echo "No se pudo subir el archivo en modo BINARY...<br>";
}
}
}
ftp_close ($ftp);
} else {
echo "No conecta al FTP.";
}
?>
Esto pasa cuando no se usa el puerto 21.
¿Alguna sugerencia para poder subir los archivos a través de PHP al igual q hace el SmartFTP?
Uso PHP 5.0.4 en modo ISAPI en el Windows 2003 Server aunque dudo q ésto tenga nada q ver con el problema del 3Com.