PHP ftp_connect de Linux a Windows

En verdad he buscado la solución en San Google pero no la he encontrado, por eso recurro a ti.
Resulta que he elaborado un archivo vía formulario donde coloco información del cliente. Todo en PHP. Necesito mover o grabar desde un inicio ese archivo a un servidor FTP que tiene mi cliente y es windows.
Mi problema es que no he podido conectar mi aplicación con el servidor de mi cliente (con programas FTP sí puedo) y estoy pensando que pudiera ser porque son sistemas distintos.
He usado
<?php
$servidor_ftp = "ftp.example.com";
// configurar una conexion o abortar
$id_con = ftp_connect($servidor_ftp) or die("No ha sido posible conectarse a $servidor_ftp");
?>
Pero ni siquiera me deja conectarme.
Muy probablemente sea por lo de los servidores.
Este script de php.net tampoco me ha funcionado.
<?php
// abrir algun archivo para lectura
$archivo = 'somefile.txt';
$da = fopen($archivo, 'r');
$id_con = ftp_connect($servidor_ftp);
$resultado_login = ftp_login($id_con, $ftp_nombre_usuario, $ftp_contrasenya);
if (ftp_fput($id_con, $archivo, $da, FTP_BINARY)) {
    echo "Se ha cargado $archivo satisfactoriamente\n";
} else {
    echo "Hubo un problema durante la carga de $archivo\n";
}
ftp_close($id_con);
fclose($da);
?>
¿Pudiera ser que no tengo el path? ¿Puerto?
¿Alguna sugerencia? Si me dieras alguna pista tal vez podría solucionarlo.

1 respuesta

Respuesta
1
Que pena no poderte colaborar con anterioridad, quisiera saber si ya solucionaste tu inconveniente. O de lo contratio te diría que el código esta bien, y no debe haber restricciones por diferencias a raíz de los S.O.,
Utilice tu ejemplo y funciona sin problemas, verifica las credenciales de acceso y los permisos que tiene el usuario de escribir en la carpeta del ftp. o también revisa los logs de php que te pueden ayudar a visualizar tus errores.
<?php
$servidor_ftp="192.168.1.54";
$puerto_ftp=21;
$timeout_ftp=90;
$ftp_nombre_usuario="jopehi";
$ftp_contrasenya="mypasswd";
$archivo = "datos.txt";
$da = fopen($archivo, 'r');
$id_con = ftp_connect($servidor_ftp, $puerto_ftp, $timeout_ftp);
$resultado_login = ftp_login($id_con, $ftp_nombre_usuario, $ftp_contrasenya);
if (ftp_fput($id_con, $archivo, $da, FTP_BINARY)) {
    echo "Se ha cargado $archivo satisfactoriamente\n";
} else {
    echo "Hubo un problema durante la carga de $archivo\n";
}
ftp_close($id_con);
fclose($da);
?>
Muchas gracias por tu respuesta. Sé lo complicado es que ayudar por las múltiples actividades.
Resulta que el script no corre en el hosting donde está. Ya lo probé en otros y funciona bien.
Supongo que este es un impedimento del servidor -aunque tiene activado el ftp_connect- por cuestión seguridad o por ser compartido.
Creo que lo que vamos a hacer es cambiar de hosting.
Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas