korg1988: solo me sube a la bd y me copia a la carpeta el primer archivo que subo
no se que estoy haciendo mal aqui dejo el codigo completo
formulario:
Código PHP:
<FORM enctype="multipart/form-data" method="post" action="insertar.php">
Archivo: <INPUT type="file" name="archivo[]" size="30"><br>
Archivo: <INPUT type="file" name="archivo[]" size="30"><br>
<INPUT type="submit" name="submit" value="Subir archivo">
</FORM>
insertar.php:
Código PHP:
<?php
//un for que recorra todos los archivos subidos
for($i=0;$i<sizeof($_FILES['archivo']['name']); $i++)
{
//Primero, arranca el bloque PHP y checkea si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción:
if (empty($_FILES['archivo']['name'][$i])){
header("location: imagen2.php?proceso=falta_indicar_fichero"); //o como se llame el formulario ..
exit;
}
//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","..","....") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("imagen",$conexion) or die("No se puede seleccionar BD"); //
// archivo temporal (ruta y nombre).
$nombre_temporal=$_FILES['archivo']['tmp_name'][$i] ;
// leer del archvio temporal...
$contenido = addslashes(fread(fopen($nombre_temporal, "rb"), filesize($nombre_temporal)));
// Obtener del array FILES (superglobal) los datos del archivo .. nombre, tabamo y tipo.
$nombre=$_FILES['archivo']['name'][$i];
$peso=$_FILES['archivo']['size'][$i];
$tipo=$_FILES['archivo']['type'][$i];
//restringir tamaño de archivo permitido
$tamano = $_FILES [ 'archivo' ][ 'size' ][$i]; // Leemos el tamaño del fichero
$tamaño_max="100000"; // Tamaño maximo permitido
if( $tamano < $tamaño_max){ // Comprovamos el tamaño
//guardar en carpeta
$destino = 'foto' ; // Carpeta donde se guardata
$sep=explode('image/',$_FILES["archivo"]["type"][$i]); // Separamos image/
$tipo=$sep[1]; // Obtenemos el tipo de imagen que es
if($tipo == "gif" || $tipo == "jpeg" || $tipo == "bmp"){
//nombre aleatorio por formato de tiempo unix
$image_name=time().'.'.$tipo;
//copio al directorio especificado
move_uploaded_file ( $_FILES [ 'archivo' ][ 'tmp_name' ][$i], $destino . '/' .$image_name.'.'.$tipo); // Subimos el archivo
}
else die("el tipo de archivo no es una imagen permitida") ;// Si no es el tipo permitido lo decimos
}
else die("El archivo supera el tamaño permitido.") ;// Si supera el tamaño de permitido lo decimos
//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO img (id, titulo, descrip, img1, img2) VALUES ('', '', '', 'foto/$image_name', '')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: listar_imagenes.php"); // si ha ido todo bien
exit;
}
?>
puede ser que en esta linea falle??
Código PHP:
//nombre aleatorio por formato de tiempo unix
$image_name=time().'.'.$tipo;