PixelUpload

Crear Uploader de Archivos

Crear Uploader de Archivos:

Este código/tutorial te permite crear tu propio uploader de archivos. Para ello no te servirá utilizar un sitio de PWG, ya que necesitas una web que permita el uso de PHP.

Primero partiremos con lo más fácil, el código HTML, el cual consiste en un simple formulario para añadir un archivo. Las zonas en negrita las puedes editar a tu gusto:
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
    <label for="file">Sube un archivo:</label>
    <input type="file" name="archivo" id="archivo" />
    <input type="submit" name="boton" value="Subir" />
</form>
<div class="resultado">
<-- Aquí pondremos el código PHP -->
</div>
</body>
</html>
Ahora pasaremos a lo complicado, estructuraremos el código PHP. Pondremos en primer lugar las etiquetas de inicio y fin del código php:
<?php

?>
Dentro de las etiquetas empezaremos a colocar las condiciones y variables para hacer funcionar nuestro uploader. La primera condición que haremos será la de pulsar el botón para subir un archivo:
// Creamos la condición de pulsar el botón "Subir archivo".

if(isset($_POST['boton'])){
Ahora haremos uno de los pasos más importantes, crearemos una variable ($random) para que sea difícil que hayan dos archivos con el mismo nombre, este variable añadirá automáticamente cifras aleatorias al inicio del archivo a subir. Además crearemos la variable $destino, que corresponde al lugar donde se subirá nuestro archivo, en este caso la carpeta files, obviamente si deseas puedes cambiar el nombre de la carpeta:
// Creamos las variables $random, cuya finalidad es agregar cifras aleatorias al inicio del archivo a subir, y $destino que es donde finalmente se subirá el archivo.
 
          $random = substr(md5(uniqid(rand())),0,6);

          $destino =  "files/".$random."_". $_FILES["archivo"]["name"];
 
En la siguiente parte del código haremos una condición para que sólo se permitan subir archivos de cierto tipo, en este caso permitiremos sólo la subida de imágenes (si quieres subir otro tipo de archivo reemplazas "image/gif" por el mime-type del archivo que quieras subir, por ejemplo si es un archivo css pondremos: "text/css"). También crearemos la condición de que sólo se permitan archivos menores a 2 megabytes (si lo deseas editar debes cambiar "2000000"):
// Hacemos una condicion en la que, en este caso, sólo permitiremos que se suban imágenes y que sean menores a 2 MB
 
    if ((($_FILES["archivo"]["type"] == "image/gif") ||  
    ($_FILES["archivo"]["type"] == "image/jpeg") ||  
    ($_FILES["archivo"]["type"] == "image/jpg") ||  
    ($_FILES["archivo"]["type"] == "image/png")) &&  

    ($_FILES["archivo"]["size"] < 2000000)) {
Ahora procederemos a crear las condiciones para los resultados de la subida, en este caso necesitaremos:

1-Una condición que niegue la subida del archivo cuando haya algún error o el archivo pese más de 2mb.
2-Una condición que niegue la subida del archivo si es que hay uno con el mismo $destino.
3-Una condición para mover el archivo a la carpeta /files en caso de que no exista ningún error.
4-Una condición para negar la subida de archivos que no sean del tipo especificado, en este caso negaremos todo lo que no sea una imagen.

Ahora la continuación del código con estas condiciones:
//Si es que hubo un error en la subida o el archivo pesaba más de 2mb, mostrarlo, de la variable $_FILES podemos extraer el valor de [error], que almacena un valor booleano (1 o 0). 
 
      if ($_FILES["archivo"]["error"] > 0) { 
        echo $_FILES["archivo"]["error"] . "TEXTO DE ERROR"; 
      } else { 
         
 // Si no hubo ningún error, hacemos otra condición para asegurarnos que el archivo no sea repetido 
 
          if (file_exists("$destino")) { 
            echo $_FILES["archivo"]["name"] . " YA EXISTE. "; 
          } else { 
// Si no es un archivo repetido y no hubo ningún error, procedemos a subir a la carpeta /files, seguido de eso mostramos la imagen subida 
 
            move_uploaded_file($_FILES["archivo"]["tmp_name"],$destino); 
            echo "ARCHIVO SUBIDO<br>"; 
            echo "<img src='$destino' />"; 
          } 
      } 
    } else { 
        
// Si el usuario intenta subir algo que no es una imagen mostramos este mensaje 
 
        echo "<b>ARCHIVO NO PERMITIDO</b>"; 
    } 
 

}
Con esto quedaría listo nuestro uploader, ahora dejaremos el código completo incluyendo el código HTML y PHP, recuerda que también puedes agregar estilos CSS a tu uploader:
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
    <label for="file">Sube un archivo:</label>
    <input type="file" name="archivo" id="archivo" />
    <input type="submit" name="boton" value="Subir" />
</form>
<div class="resultado">

<?php

// Creamos la condición de pulsar el botón "Subir archivo".


if(isset($_POST['boton'])){

// Creamos las variables $random, cuya finalidad es agregar cifras aleatorias al inicio del archivo a subir, y $destino que es donde finalmente se subirá el archivo.
 
          $random = substr(md5(uniqid(rand())),0,6);

          $destino =  "files/".$random."_". $_FILES["archivo"]["name"];

// Hacemos una condicion en la que, en este caso, sólo permitiremos que se suban imágenes y que sean menores a 2 MB
 
    if ((($_FILES["archivo"]["type"] == "image/gif") ||  
    ($_FILES["archivo"]["type"] == "image/jpeg") ||  
    ($_FILES["archivo"]["type"] == "image/jpg") ||  
    ($_FILES["archivo"]["type"] == "image/png")) &&  

    ($_FILES["archivo"]["size"] < 2000000)) {

//Si es que hubo un error en la subida o el archivo pesaba más de 2mb, mostrarlo, de la variable $_FILES podemos extraer el valor de [error], que almacena un valor booleano (1 o 0). 
 
      if ($_FILES["archivo"]["error"] > 0) { 
        echo $_FILES["archivo"]["error"] . "TEXTO DE ERROR"; 
      } else { 
         
 // Si no hubo ningún error, hacemos otra condición para asegurarnos que el archivo no sea repetido 
 
          if (file_exists("$destino")) { 
            echo $_FILES["archivo"]["name"] . " YA EXISTE. "; 
          } else { 
// Si no es un archivo repetido y no hubo ningún error, procedemos a subir a la carpeta /files, seguido de eso mostramos la imagen subida 
 
            move_uploaded_file($_FILES["archivo"]["tmp_name"],$destino); 
            echo "ARCHIVO SUBIDO<br>"; 
            echo "<img src='$destino' />"; 
          } 
      } 
    } else { 
        
// Si el usuario intenta subir algo que no es una imagen mostramos este mensaje 
 
        echo "<b>ARCHIVO NO PERMITIDO</b>"; 
    } 
 

}

?>

</div>
</body>
</html>



PixelUpload ha CERRADO. Lo sentimos! :(
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis