+ Reply to Thread
Results 1 to 4 of 4

Thread: Subir archivos ftp mediante php

  1. #1
    naves's Avatar
    naves is offline x10Hosting Member naves is an unknown quantity at this point
    Join Date
    Sep 2008
    Location
    Guanajuato
    Posts
    65

    Subir archivos ftp mediante php

    :cool:Creamos un archivo php común usando nuestro editor favorito. En él creamos un formulario como cualquier otro, con las siguientes opciones
    <form name="enviador" method="post" action="recibe.php" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000">
    Archivo: <input type="file" name="archivo">
    <input type="submit"> Aquí hay que notar algunas cosas:
    Primero, en el enctype="multipart/form-data", le decimos que el contenido del formulario será cifrado por partes, esto es necesario para que el manejo de archivos sea más fácil para nuestro script, ya que sería muy díficil poder transmitir de golpe un archivo muy pesado por ejemplo.
    Luego viene un campo de tipo hidden, esto último es opcional, pero lo recomiendo para limitar el tamaño del archivo a transmitir, la macro MAX_FILE_SIZE se encargará de esa gestión.
    Veamos ahora la contraparte, el archivo recibe.php que es el que se encarga de hacer la conexión FTP mediante PHP.


    <?php
    // Primero creamos un ID de conexión a nuestro servidor
    $cid = ftp_connect("www.cg.edu.mx");
    // Luego creamos un login al mismo con nuestro usuario y contraseña
    $resultado = ftp_login($cid, "usuario","noteladigo");
    // 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 boca
    ftp_chdir($cid, "boca");
    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 = "/srv/www/htdocs/boca/" . $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);
    ?>

    Chido critalab

  2. #2
    ntvinh986 is offline x10Hosting Member ntvinh986 is an unknown quantity at this point
    Join Date
    Oct 2009
    Posts
    1

    Re: Subir archivos ftp mediante php

    Quote Originally Posted by naves View Post
    :cool:Creamos un archivo php común usando nuestro editor favorito. En él creamos un formulario como cualquier otro, con las siguientes opciones
    <form name="enviador" method="post" action="recibe.php" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000">
    Archivo: <input type="file" name="archivo">
    <input type="submit"> Aquí hay que notar algunas cosas:
    Primero, en el enctype="multipart/form-data", le decimos que el contenido del formulario será cifrado por partes, esto es necesario para que el manejo de archivos sea más fácil para nuestro script, ya que sería muy díficil poder transmitir de golpe un archivo muy pesado por ejemplo.
    Luego viene un campo de tipo hidden, esto último es opcional, pero lo recomiendo para limitar el tamaño del archivo a transmitir, la macro MAX_FILE_SIZE se encargará de esa gestión.
    Veamos ahora la contraparte, el archivo recibe.php que es el que se encarga de hacer la conexión FTP mediante PHP.


    <?php
    // Primero creamos un ID de conexión a nuestro servidor
    $cid = ftp_connect("www.cg.edu.mx");
    // Luego creamos un login al mismo con nuestro usuario y contraseña
    $resultado = ftp_login($cid, "usuario","noteladigo");
    // 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 boca
    ftp_chdir($cid, "boca");
    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 = "/srv/www/htdocs/boca/" . $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);
    ?>

    Chido critalab
    Many thanks to ur post. I love it.

  3. #3
    iupload is offline x10Hosting Member iupload is an unknown quantity at this point
    Join Date
    Jan 2010
    Posts
    7

    Re: Subir archivos ftp mediante php

    muchas gracias amigo me sirvió mucho tu aportación :facesjump

  4. #4
    winderjester is offline x10Hosting Member winderjester is an unknown quantity at this point
    Join Date
    Sep 2009
    Posts
    9

    Re: Subir archivos ftp mediante php

    wow gracias por este gran aporte

+ Reply to Thread

Similar Threads

  1. Ever Been Suspended For Using PHP?
    By dragoneye_xp in forum Off Topic
    Replies: 26
    Last Post: 08-16-2009, 08:17 PM
  2. Problema subiendo archivos con php =/
    By nyanko in forum Ayuda Web
    Replies: 4
    Last Post: 12-15-2008, 08:02 PM
  3. currently have an application pending php
    By biomasti in forum Free Hosting
    Replies: 1
    Last Post: 09-03-2008, 02:58 PM
  4. Important PHP Information
    By Bryon in forum News and Announcements
    Replies: 0
    Last Post: 11-21-2007, 03:08 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
x10hosting free hosting for the masses
dedicated servers