Upload de archivos con PHP versión 2.0

En este artículo vamos a explicar de forma sencilla como realizar una subida de un archivo con PHP utilizando la función «move_uploaded_file()».

Esta función recibe 2 parámetros; el primero es el archivo de origen (será el archivo temporal que estemos subiendo) y el destino.

En nuestro código HTML, deberemos tener un formulario que permita la subida de archivos y con un campo para examinar archivos en su PC.

<form action="index.php" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file" /><br />
    <input type="submit" name="submit" value="Submit" />
</form>

Este formulario se envía a la misma página donde está por método POST y permitiendo la subida de ficheros.

Dentro del formulario tenemos un campo o input de tipo «file» y finalmente un botón para realizar la acción de enviar el formulario.

Dentro de esta misma página, deberemos incluir el código PHP que procesa el formulario:

<?php
if (isset($_POST['submit'])) {
    if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 100000)) {
        if ($_FILES["file"]["error"] > 0) {
            echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
        }
         else {
            echo "Upload: " . $_FILES["file"]["name"] . "<br />";
            echo "Type: " . $_FILES["file"]["type"] . "<br />";
            echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
            echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

            if (file_exists("uploads/" . $_FILES["file"]["name"])) {
                  echo $_FILES["file"]["name"] . " already exists. ";
              }
            else {
                  move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
                  echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];
             }
        }
      }
    else {
          echo "Invalid file";
      }
}
?>

Este código comprueba si se ha pulsado el botón de enviar para procesar el archivo. Para considerarlo ok miramos que el archivo sea tipo gif o jpg. Intentando subir otra extensión mostraríamos un error.

Si el archivo existe no hacemos nada y si no existe procedemos a realizar la operación de mover el archivo que queremos subir al lugar indicado.

Otra forma que podría resultar más sencilla para realizar la subida de una archivo es utilizar la función copy() de PHP como el siguiente ejemplo:

 <?php
if (isset($_POST['submit'])) {
    if (is_uploaded_file($HTTP_POST_FILES['file']['tmp_name'])) {
        copy($HTTP_POST_FILES['file']['tmp_name'], $HTTP_POST_FILES['file']['name']);
        echo "El archivo subio con exito";
    }
    else {
        echo "El archivo no cumple con las reglas establecidas";
    }
}
?>

Como vemos con la función copy() podemos ver un código mucho más legible, fácil de entender y menos líneas de código.

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(8 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre