Portada » Lenguaje PHP » Cargar múltiples archivos con PHP

Cargar múltiples archivos con PHP

Cargar múltiples archivos con PHP. De manera muy rápida explicaremos la forma de cargar varios archivos con un solo formulario usando HTML, PHP y CSS. Los ficheros a cargar pueden ser imágenes, documentos de texto y/o Audio y video. Sin embargo, debemos de verificar cual es la cantidad máxima de carga que nos permite subir el servidor.

Cargar múltiples archivos con PHP

¿Se podría cargar múltiples archivos en un mismo formulario?

Si se puede y para dar solución a esta incógnita es que nos decidimos a crear este articulo para despejar sus dudas.

Requisitos para el sistema (Cargar múltiples archivos):

  1. Servidor local
  2. PHP como lenguaje de programación
  3. Bootstrap (CSS) y jQuery.

Revisaremos nuestro formulario como punto número uno (1). Tenemos que declarar obligatoriamente el atributo llamada (enctype=”multipart/form-data») en la etiqueta FORM. Sin embargo, sin este atributo será imposible subir cualquier fichero al servidor.

Ahora datos a tener en cuenta, el atributo «enctype» sólo puede utilizarse cuando declaramos al método  «post».

El resultado del formulario es el siguiente:

index.php

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Capturar pantalla del sitio web desde URL PHP</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.2.1.min.js" ></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" ></script>
<style type="text/css">
* {
	font-family:Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif
}
.main {
	margin:auto;
	border:1px solid #7C7A7A;
	width:70%;
	text-align:left;
	padding:30px;
	background:#85c587
}
input[type=submit] {
	background:#6ca16e;
	width:100%;
	padding:5px 15px;
	background:#ccc;
	cursor:pointer;
	font-size:16px;
}
input[type=text] {
	width:40%;
	padding:5px 15px;
	height:25px;
	font-size:16px;
}
.form-control {
	padding: 0px 0px;
}
</style>
</head>
<body bgcolor="#bed7c0">
<br>
<div class="main">
  <h1>Cargar múltiples archivos PHP</h1>
  <div class="panel panel-primary">
    <div class="panel-body">
      <form name="MiForm" id="MiForm" method="post" action="cargar.php" enctype="multipart/form-data">
        <h4 class="text-center">Cargar Múltiple Archivos</h4>
        <div class="form-group">
          <label class="col-sm-2 control-label">Archivos</label>
          <div class="col-sm-8">
            <input type="file" class="form-control" id="miarchivo[]" name="miarchivo[]" multiple="">
          </div>
          <button type="submit" class="btn btn-primary">Cargar Multiple</button>
        </div>
      </form>
    </div>
  </div>
</div>
</body>
</html>

Resultado si lo ejecutamos en el navegador.

Cargar múltiples archivos e imagenes con PHP
Cargar múltiples archivos e imagenes con PHP

Listo ya tenemos nuestro formulario y tenemos que presionar el botón Cargar Múltiple y este enviara la información al script cargar.php.

cargar.php

<?php
	foreach($_FILES["miarchivo"]['tmp_name'] as $key => $tmp_name)
	{
		//condicional si el fuchero existe
		if($_FILES["miarchivo"]["name"][$key]) {
			// Nombres de archivos de temporales
			$archivonombre = $_FILES["miarchivo"]["name"][$key]; 
			$fuente = $_FILES["miarchivo"]["tmp_name"][$key]; 
			
			$carpeta = 'archivos/'; //Declaramos el nombre de la carpeta que guardara los archivos
			
			if(!file_exists($carpeta)){
				mkdir($carpeta, 0777) or die("Hubo un error al crear el directorio de almacenamiento");	
			}
			
			$dir=opendir($carpeta);
			$target_path = $carpeta.'/'.$archivonombre; //indicamos la ruta de destino de los archivos
			
	
			if(move_uploaded_file($fuente, $target_path)) {	
				echo "Los archivos $archivonombre se han cargado de forma correcta.<br>";
				} else {	
				echo "Se ha producido un error, por favor revise los archivos e intentelo de nuevo.<br>";
			}
			closedir($dir); //Cerramos la conexion con la carpeta destino
		}
	}
?>

Resultado al subir ficheros

Multiples ficheros PHP
Multiples ficheros PHP

Veamos una pequeña diferencia para cargar ficheros al servidor

Los input por lo general utilizamos «$_POST » o «GET»para recuperar el valor del elemento, para este ejemplo lo reemplazaremos con $_FILES.

El código cargar los archivo a la carpeta de destino especificada, en este ejemplo «archivos».

Cargar múltiples archivos con PHP
Cargar múltiples archivos con PHP

Descargar código fuente

 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 3 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Scroll al inicio
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad