Formulario php simple para subir archivos

Actualizado el domingo, 19 junio, 2016

Sencillo ejemplo de formulario para subir archivos a tu web. Consta de dos archivos, index.php y upload.php. Recuerda que debes configurar el archivo upload.php y crear una carpeta en tu server para tus uploads con permisos 777. La configuración de upload.php es tan sencilla como:

  • Line 3 – Carpeta de uploads
  • Line 4 – El tamaño máximo del archivo a subir (en bites)
  • Line 5 – Las extensiones permitidas a subir (una coma para separarlas)
  • Line 6 – Permitir sobreescritura (on o off)
  • Line 41-El mensaje que aparecerá cuando el archivo haya sido subido. Podéis colocar la ruta de descarga, esta habrá de ser www.tudominio.com/directorio del archivo index.php/uploads/$filename($filename indica el nombre del archivo)

index.php

<form action="upload.php" method="post" enctype="multipart/form-data">
  
    <b>Enviar un archivo: </b>
    <br>
    <input name="userfile" type="file">
    <br>
    <input type="submit" value="Enviar">
	</form>

upload.php
<?
// Configuración
$folder = "uploads/"; // Carpeta a la que subir los archivos
$maxlimit = 5000000; // Máximo límite de tamaño (en bits)
$allowed_ext = "rar,jpg"; // Extensiones permitidas (usad una coma para separarlas)
$overwrite = "no"; // Permitir sobreescritura? (yes/no)

$match = ""; 
$filesize = $_FILES['userfile']['size']; // toma el tamaño del archivo
$filename = strtolower($_FILES['userfile']['name']); // toma el nombre del archivo y lo pasa a minúsculas


if(!$filename || $filename==""){ // comprueba si no se ha seleccionado ningún archivo
   $error = "- Ningún archivo selecccionado para subir.<br>";
}elseif(file_exists($folder.$filename) && $overwrite=="no"){ // comprueba si el archivo existe ya
   $error = "- El archivo <b>$filename</b> ya existe<br>";
}

// comprobar tamaño de archivo
if($filesize < 1){ // el archivo está vacío
   $error .= "- Archivo vacío.<br>";
}elseif($filesize > $maxlimit){ // el archivo supera el máximo permitido
   $error .= "- Este archivo supera el máximo tamaño permitido.<br>";
}

$file_ext = preg_split("/\./",$filename);
$allowed_ext = preg_split("/\,/",$allowed_ext);
foreach($allowed_ext as $ext){
   if($ext==$file_ext[1]) $match = "1"; // Permite el archivo
}

// Extensión no permitida
if(!$match){
   $error .= "- Este tipo de archivo no está permitido: $filename<br>";
}

if($error){
   print "Se ha producido el siguiente error al subir el archivo:<br> $error"; // Muestra los errores
}else{
   if(move_uploaded_file($_FILES['userfile']['tmp_name'], $folder.$filename)){ // Sube el archivo
      print "<b>$filename</b> se ha subido correctamente!"; // Mensaje de aviso, upload correcto
   }else{
      print "Error! Puede que el tamaño supere el máximo permitido por el servidor. Inténtelo de nuevo."; // error
   }
}

?>
<form>
     <INPUT TYPE="button" VALUE="Atrás" onClick="history.back()">
</form>

 

Una respuesta

  1. Jose Paz
    23/11/2018

Agregar comentario