Buenos días.
Llevo perdidas como 10 horas con esto entre ayer y hoy, y reconozco que ya no sé qué más mirar ni probar. El código es simple (creo yo, que ya lo he hecho mil veces...)
Código PHP:
$ftphost = "ftp.destino.com";
$ftpuser = "usuario-ftp";
$ftppass = "pass-ftp";
$conexion = ftp_connect($ftphost);
$ftplogin = ftp_login($conexion, $ftpuser, $ftppass) or die ("Error FTP login");
$origen = "/ftp.php"; //esto genera la ruta /home/xxxxx/web/dominio/test/ftp.php
$destino = "/ftp.movido.php"; //comprobado que en destino la ruta actual es la que debe ser
if(ftp_put($conexion, $destino, $origen, FTP_BINARY)) echo "OK"; else echo "ERROR. <br>origen: $origen<br>destino: $destino";
if(ftp_close($conexion)) echo "<br><br>OK: Conexión FTP cerrada<br>"; else "<br><br>ERROR: No se ha podido cerrar la conexión FTP<br>";
Este código siempre da error.
La carpeta del FTP de destino tiene permisos 775, y el usuario FTP es el usuario administrador de esa cuenta de hosting compartido y por tanto entiendo que los permisos al hacerse la transferencia son los adecuados para poder escribir.
El script completo incluye una funcion que recursivamente copia la estructura de la carpeta completa, con subcarpetas etc... y esto sí lo cumple, es decir, la esctructura de carpetas la genera, por tanto me hace dudar que el problema sea de permisos, pero los archivos no los copia nunca.
A ver si alguien tiene más luces que yo y me puede echar una mano.
PD: Por probar he intentado también con modo FTP_ASCII pero el resultado es el mismo :(