Upload en PHP en profesordeinformatica.com

Upload en PHP

Por Aitor López de Aberasturi el Lunes, 11 de Agosto de 2014 0 Comentarios

Un upload nos permite subir un fichero a un servidor mediante un botón examinar. En el ejemplo siguiente vamos a ver como se realiza. Lo vamos a dividir en dos partes subirfichero.html donde seleccionamos el fichero y subirfichero.php que es el programa php encargado en recoger ese fichero y guardarlo en una carpeta uploads.

subirfichero.html:

 
<html>
<body>

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

Para subir el fichero el formulario tiene que tener el método post y el tipo de encriptación multipart/form-data. Además para poder seleccionar el fichero vamos a tener un input de tipo file. Ese input nos va a insertar automáticamente un Examinar en nuestro formulario que nos permitirá elegir el fichero que queremos subir al servidor. Otras cosas que tenemos que tener en cuenta el nombre (parámetro name) que le damos a este input, en nuestro caso fichero.

 
<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["fichero"]["name"]));
if ((($_FILES["fichero"]["type"] == "image/gif")
|| ($_FILES["fichero"]["type"] == "image/jpeg")
|| ($_FILES["fichero"]["type"] == "image/png")
|| ($_FILES["fichero"]["type"] == "image/jpeg"))
&& ($_FILES["fichero"]["size"] < 1000000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["fichero"]["error"] > 0)
    {
    echo "Código de error: " . $_FILES["fichero"]["error"] . "
"; } else { echo "Fichero: " . $_FILES["fichero"]["name"] . "
"; echo "Tipo: " . $_FILES["fichero"]["type"] . "
"; echo "Tamaño: " . ($_FILES["fichero"]["size"] / 1024) . " kB
"; echo "Fichero temporal: " . $_FILES["fichero"]["tmp_name"] . "
"; if (file_exists("upload/" . $_FILES["fichero"]["name"])) { echo $_FILES["fichero"]["name"] . "El fichero ya existe "; } else { move_uploaded_file($_FILES["fichero"]["tmp_name"], "upload/" . $_FILES["fichero"]["name"]); echo "Stored in: " . "upload/" . $_FILES["fichero"]["name"]; } } } else { echo "Fichero inválido"; } ?>

Cuando subamos el fichero el sistema nos va a crear unas variables que nos ayudarán con el tratamiento del fichero.

$_FILE['fichero']['name']: Nombre del fichero.

$_FILE['fichero']['tmp_name']: Directorio temporal y nombre donde se sube el fichero.

$_FILE['fichero']['tupe']: Tipo del fichero.

$_FILE['fichero']['sise']: Tamaño del fichero.

$_FILE['fichero']['error']: Error a la hora de subir el fichero.

En el programa anterior vamos a comprobar que el fichero es una imagen y menor que 1 MB, si no es así no nos dejará subir el fichero. Se controlará también si el fichero ya existe para que no lo pueda machacar.

Próxima entrada

Bases de datos Mysql con PHP


Sobre el profe

Esta es la página web de Aitor Lopez de Aberasturi profesor de informática en ITS Ciudad Jardin. También puedes visitar mi blog de clase.