Hola
Primero gracias por responder
En este formulario elijo una foto local que quiero subir al servidor. La elección es enviada a otra rutina que se encarga de subirla
Código PHP:
<form action='Grabafoto.php' method='get' enctype='multipart/form-data'>
<table width='100%' border='0'>
<tr>
<td> Seleccione la foto
<input type='file' name='FotoLocal'>
</td>
</tr>
<tr>
<td><div align='center'>
<input type='submit' name='Submit' value='Publicar'>
</td>
</tr>
</table>
</form>
Esta es la rutina grabafoto.php donde se recibe el nombre del archivo que quiero subir.
Código PHP:
$FotoLocal=$_GET['FotoLocal']; //nombre del archivo original local
define("SERVER","192.168.0.253"); //IP o Nombre del Servidor
define("PORT",21); //Puerto
define("USER","Gedeon"); //Nombre de Usuario
define("PASSWORD","123456"); //Contraseña de acceso
define("PASV",true); //Activa modo pasivo
$FotoRemota="Foto11.jpg";
if (!$id_ftp=ConectarFTP())
{ echo "No se puede conectar al servidor. \n";
return;
}
ftp_chdir($id_ftp,"Galeria");
$Resul=ftp_put($id_ftp,$fotoRemota,$FotoLocal,FTP_BINARY);
if (!$Resul)
{ echo "fallo al escribir";
}
ftp_quit($id_ftp); //Cierra la conexion FTP
function ConectarFTP()
{
$id_ftp=ftp_connect(SERVER,PORT);
$r=ftp_login($id_ftp,USER,PASSWORD);
$r=ftp_pasv($id_ftp,PASV);
return $id_ftp;
}
He comprobado que conecta bien (de hecho aparece en el log del servidor) y también que hace bien el chdir (si pongo una carpeta que no existe da error), también termina bien la conexión, pero no consigo que me haga el ftp_put (de hecho ni siquiera llega a aparecer el intento en el log del servidor).
Siempre obtengo "fallo al escribir".
¿Puede ser porque el archivo de la foto esté abierto? (pues se está visualizando en la página anterior)
No veo diferencia con el código que me has puesto como ejemplo.
Un saludo y gracias por responder.