2do subir varios archivos a la vez y almacenarlos en la base de datos:
primero el codigo html:
Código HTML:
<form action="<?php echo $_SERVER['PHP_SELF']; ?> method="POST" name="frmLogin" enctype="multipart/form-data">
Documento 1:
<input type="file" name="archivos[]"/>
Documento 2:
<input type="file" name="archivos[]"/>
Documento 3:
<input type="file" name="archivos[]"/>
Documento 4:
<input type="file" name="archivos[]"/>
<input type="submit" value="Enviar" name="envia"/>
</form>
En este caso vamos a subir cuatro archivos, en la web existen varios metodos para subir x cantidad de archivos estilo Gmail pero este no es el caso ya que los q vamos a subir son fijos.
Nota: es importante que el name de los input tengan [] al final ya que indica que hacen parte de un vector.
bueno ahora los vamos a subir y almacenar en la base de datos veran q la diferencia entre subir uno o varios es recorrer el vector que en este caso se llama
archivos:
Código PHP:
if( isset($_POST["envia"]) )
{
if (isset ($_FILES["archivos"]))
{
//iniciamos la configuracion
$folder = "docs/";//carpeta en donde se subiran los archivos
$maxlimit = 50000000000;
$allowed_ext = "rar,jpg,bmp,jpeg,gif";
$overwrite = "no";
$match = "";
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$error="";
$cad[]="";
$tot = count($_FILES['archivos']['name']);//esta seccion cuenta la cantidad de los archivos enviados pero como dijimos q era fijo no lo vamos a necesitar en caso de que lo quieran dinamicos pues lo usan si no no
for ($i = 0; $i < $tot; $i++)//recorremor el vector archivos[]
{
$filename = "";
$filesize = $_FILES['archivos']['size'][$i];
$archivo=$_FILES['archivos']['tmp_name'][$i];
$sep=explode("image/",$_FILES['archivos']['type'][$i]);
$tipo=$sep[1];
for($j=0;$j<12;$j++)
{$filename .= substr($str,rand(0,62),1);}
if(!$filename || $filename=="")
{$error = "- Ningún archivo selecccionado para subir.";}
elseif(file_exists($folder.$filename) && $overwrite=="no")
{ $error = "- El archivo $filename ya existe";}
if($filesize < 1)
{$error .= "- Archivo vacío.";}
elseif($filesize > $maxlimit)
{$error .= "- Este archivo supera el máximo tamaño permitido.";}
if($tipo == "gif" || $tipo == "jpeg" || $tipo == "jpg" || $tipo == "bmp")
{$match = "1";}
if(!$match)
{$error .= "- Este tipo de archivo no está permitido: $tipo";}
if($error)
{print "Se ha producido el siguiente error al subir el archivo: $error";}
else
{
$destino = $folder.$filename.'.'.$tipo;
if(move_uploaded_file($archivo, $destino))
{$cad[$i] = $destino;}
else
echo "archivo no subido";
}
}
$conexion = new mysqli("servidor","user","pass","base_datos");
if($conexion)
{
$numced = $sesion->get("cedpart");
$insercion = "INSERT INTO documentos VALUES ('".$cad[0]."','".$cad[1]."','".$cad[2]."','".$cad[3]."')";
$result = $conexion->query($insercion);
if($row_cnt > 0)
{echo "archivo almacenado en la base de datos";}
else
{echo "archivo no almacenado";}
}
else
{echo "no hay conexion";} }
como vemos almacenamos las cadenas de ruta/archico.tipo en una cadena y esa cadena es la que utilizamos como variable para el ingreso a la base de datos