He creado mi server y he seguido esta guia para crear mi webFTP:
http://www.cristalab.com/tutoriales/112/subir-archivos-con-php-por-ftp
Código :
<?php // Primero creamos un ID de conexión a nuestro servidor $cid = ftp_connect("miip.dyndns.com"); // Luego creamos un login al mismo con nuestro usuario y contraseña $resultado = ftp_login($cid, "user","passw"); // Comprobamos que se creo el Id de conexión y se pudo hacer el login if ((!$cid) || (!$resultado)) { echo "Fallo en la conexión"; die; } else { echo "Conectado."; } // Cambiamos a modo pasivo, esto es importante porque, de esta manera le decimos al //servidor que seremos nosotros quienes comenzaremos la transmisión de datos. ftp_pasv ($cid, true) ; echo "<br> Cambio a modo pasivo<br />"; // Nos cambiamos al directorio, donde queremos subir los archivos, si se van a subir a la raíz // esta por demás decir que este paso no es necesario. En mi caso uso un directorio llamado pujades ftp_chdir($cid, "pujades"); echo "Cambiado al directorio necesario"; // Tomamos el nombre del archivo a transmitir, pero en lugar de usar $_POST, usamos $_FILES que le indica a PHP // Que estamos transmitiendo un archivo, esto es en realidad un matriz, el segundo argumento de la matriz, indica // el nombre del archivo $local = $_FILES["archivo"]["name"]; // Este es el nombre temporal del archivo mientras dura la transmisión $remoto = $_FILES["archivo"]["tmp_name"]; // El tamaño del archivo $tama = $_FILES["archivo"]["size"]; echo "<br />$local<br />"; echo "$remoto<br />"; echo "subiendo el archivo...<br />"; // Juntamos la ruta del servidor con el nombre real del archivo $ruta = "/opt/lampp/htdocs/inc/pujades/" . $local; // Verificamos si no hemos excedido el tamaño del archivo if (!$tama<=$_POST["MAX_FILE_SIZE"]){ echo "Excede el tamaño del archivo...<br />"; } else { // Verificamos si ya se subio el archivo temporal if (is_uploaded_file($remoto)){ // copiamos el archivo temporal, del directorio de temporales de nuestro servidor a la ruta que creamos copy($remoto, $ruta); } // Sino se pudo subir el temporal else { echo "no se pudo subir el archivo " . $local; } } echo "Ruta: " . $ruta; //cerramos la conexión FTP ftp_close($cid); ?>
Cuando accedo a ftp.php, que es donde busco el archivo a subiar al ftp lo hace correctamente.
Pero el error viene cuando intento subir el archivo.
El firefox me muestra este error:
Conectado.
Cambio a modo pasivo
Warning: ftp_chdir() [function.ftp-chdir]: pujades: No such file or directory in /opt/lampp/htdocs/inc/recibe.php on line 18
Cambiado al directorio necesario
pacman.jpg
/tmp/phpSUyufA
subiendo el archivo...
Excede el tamaño del archivo...
Ruta: /opt/lampp/hdocs/inc/pujades/pacman.jpg
Cambio a modo pasivo
Warning: ftp_chdir() [function.ftp-chdir]: pujades: No such file or directory in /opt/lampp/htdocs/inc/recibe.php on line 18
Cambiado al directorio necesario
pacman.jpg
/tmp/phpSUyufA
subiendo el archivo...
Excede el tamaño del archivo...
Ruta: /opt/lampp/hdocs/inc/pujades/pacman.jpg
Alguna ayuda, por favor?
Muchas gracias!!