Subir archivos y eliminarlos con PHP

Tema en 'Cementerio De Temas' iniciado por Mandr4k3, 15 May 2008.

  1. Mandr4k3

    Mandr4k3 Usuario Casual nvl. 2
    37/41

    Registrado:
    8 Jun 2006
    Mensajes:
    2.836
    Me Gusta recibidos:
    8
    Una de las ventajas de los lenguajes para la web es que uno puede utilizarlos para crear servicios de administración del sitio y entre esas herramientas, quizás, las más comunes son la de subir un archivo y eliminar archivos de un directorio.

    Como prueba subiremos imágenes al servidor.

    Primero, creamos los siguientes archivos:

    * index.php (Esta será nuestra interfaz gráfica)
    * upload.php (Aquí estarán los script necesarios para subir las imágenes)
    * elimina_todos.php (Aquí estarán los script necesarios para eliminar las imágenes)

    Luego en el index creamos los form necesarios para subir y eliminar archivos, como este ejemplo, que incluye un CSS:

    Insertar CODE, HTML o PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Subir Imagenes a Sitio</title>
    <link href="css/ejemplo.css" rel="stylesheet" type="text/css" />
    </head>
    
    <body>
    <div id="centrar_info">
        <div id="contenedor_subir_imagen">
     <form action="upload.php" method="post" enctype="multipart/form-data">
        <br>
        <br>
        <br>
        <b>Subir un nuevo archivo: </b><br>
        <br>
        <input name="userfile" type="file">
        <br>
        <input type="submit" value="Enviar">
    </form>
        <form action="elimina_todos.php" method="post" enctype="multipart/form-data">
        <br />
        <br />
        <strong>Eliminar todos los archivos de imágenes de la carpeta</strong><br />
        <br />
        <input type="submit" value="Borrar todos los archivos">
        </form><br />
        <br />
        </div>
    </div>
    </body>
    </html>
    
    
    Luego pegamos el siguiente script en el archivo upload.php

    Insertar CODE, HTML o PHP:
    <?php
    /* Aquí procedemos a crear el código para subir las imágenes al sitio o carpeta de destino
    que nosotros queramos, o cualquier tipo de archivo basta con cambiar la extensión en la variable $tipo_archivo y listo. Vale la pena recordar que la variable $tamano_archivo también la pueden elevar para subir archivos más grandes a la que está que es de 200KB*/
    //datos del arhivo
    $nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
    $tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
    $tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
    //compruebo si las características del archivo son las que deseo
    if (!((strpos($tipo_archivo, "png") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 200000))) {
        echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .png o .jpg<br><li>se permiten archivos de 200 Kb máximo.</td></tr></table>";
    }else{
        if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){
           echo "El archivo ha sido cargado correctamente.";
        }else{
           echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
        }
    }
    ?>

    Y finalmente pegamos este código para el archivo elimina_todos.php:

    Insertar CODE, HTML o PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Elimina Imagenes</title>
    </head>
    
    <body>
    <?php
    /* --------------------------------------------------------------
    Aquí elimino todos los archivos con extensión JPEG de la Carpeta
    Por Rodrigo Alfaro, [email protected], 2008 
    --------------------------------------------------------------- */
    
    foreach (glob("*.jpg") as $filename) {
       echo "$filename size " . filesize($filename) . "\n";
       unlink($filename);
    }
    
    ?>
    <center> Vuelva a subir imagenes a la carpeta <strong> >> <a href="index.php">VOLVER</a> << </strong> </center>
    </body>
    </html>
    Ejemplos del tutorial para descargar aquí

    Eso...

    Espero traer más cosas así si el tiempo lo permite.

    Saludos!