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.
Deja una respuesta