Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/04/2010, 11:51
KaozC9
 
Fecha de Ingreso: abril-2010
Ubicación: Chile
Mensajes: 76
Antigüedad: 14 años
Puntos: 3
Respuesta: ftp con php...

Aqui te dejo un script hecho por Aoyama de cristalab

Código HTML:
Ver original
  1. <form name="enviador" method="post" action="recibe.php" enctype="multipart/form-data">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="1000">
  3. Archivo: <input type="file" name="archivo">
  4. <input type="submit">
Código PHP:
Ver original
  1. <?php
  2.     // Primero creamos un ID de conexión a nuestro servidor
  3.     $cid = ftp_connect("www.cg.edu.mx");
  4.     // Luego creamos un login al mismo con nuestro usuario y contraseña
  5.     $resultado = ftp_login($cid, "usuario","noteladigo");
  6.     // Comprobamos que se creo el Id de conexión y se pudo hacer el login
  7.     if ((!$cid) || (!$resultado)) {
  8.         echo "Fallo en la conexión"; die;
  9.     } else {
  10.         echo "Conectado.";
  11.     }
  12.     // Cambiamos a modo pasivo, esto es importante porque, de esta manera le decimos al
  13.     //servidor que seremos nosotros quienes comenzaremos la transmisión de datos.
  14.     ftp_pasv ($cid, true) ;
  15.     echo "<br> Cambio a modo pasivo<br />";
  16.     // Nos cambiamos al directorio, donde queremos subir los archivos, si se van a subir a la raíz
  17.     // esta por demás decir que este paso no es necesario. En mi caso uso un directorio llamado boca
  18.     ftp_chdir($cid, "boca");
  19.     echo "Cambiado al directorio necesario";  
  20.     // Tomamos el nombre del archivo a transmitir, pero en lugar de usar $_POST, usamos $_FILES que le indica a PHP
  21.     // Que estamos transmitiendo un archivo, esto es en realidad un matriz, el segundo argumento de la matriz, indica
  22.     // el nombre del archivo
  23.     $local = $_FILES["archivo"]["name"];
  24.     // Este es el nombre temporal del archivo mientras dura la transmisión
  25.     $remoto = $_FILES["archivo"]["tmp_name"];
  26.     // El tamaño del archivo
  27.     $tama = $_FILES["archivo"]["size"];
  28.     echo "<br />$local<br />";
  29.     echo "$remoto<br />";
  30.     echo "subiendo el archivo...<br />";
  31.     // Juntamos la ruta del servidor con el nombre real del archivo
  32.     $ruta = "/srv/www/htdocs/boca/" . $local;
  33.     // Verificamos si no hemos excedido el tamaño del archivo
  34.     if (!$tama<=$_POST["MAX_FILE_SIZE"]){
  35.         echo "Excede el tamaño del archivo...<br />";
  36.     } else {
  37.         // Verificamos si ya se subio el archivo temporal
  38.         if (is_uploaded_file($remoto)){
  39.             // copiamos el archivo temporal, del directorio de temporales de nuestro servidor a la ruta que creamos
  40.             copy($remoto, $ruta);      
  41.         }
  42.         // Sino se pudo subir el temporal
  43.         else {
  44.             echo "no se pudo subir el archivo " . $local;
  45.         }
  46.     }
  47.     echo "Ruta: " . $ruta;
  48.     //cerramos la conexión FTP
  49.     ftp_close($cid);
  50. ?>

es basico, asi que debes colocarle seguridad, como que solo permita el upload de ciertos ficheros, o deshabilitar el uso de php en la carpeta que subiras los archivos