Ver Mensaje Individual
  #12 (permalink)  
Antiguo 30/09/2008, 14:22
Avatar de korg1988
korg1988
 
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
De acuerdo Respuesta: un problema al subir archivo

ANTES QUE NADA ORDENEMOS UN POCO EL CODIGO
Tendrias que empezar a tabular mas tu codigo
Asi los errores saltan de manera mas sencilla
Primera cosa que vi mal (hay varias pero no son importantes), pero algo que no tenia sentido era crear la coneccion a mysql dentro del for!... ya que por cada vuelta que el for se ejecutace iba a volver a conectarce al servidor!....
Por eso la coneccion la creamos fuera del for por unica vez y luego ejecutamos le resto del codigo....

Y por ultimo, el problema era que estabas redireccionando al final del for a otra pagina, y eso hacia que no se ejecutara mas de 1 vez, entonces si sacas ese codigo y lo pones luego de que termine el for completamente entonces te va a permitir subir todas las imagenes, y luego redireccionar

FIJATE AL FINAL DEL CODIGO COMO LO PUSE
Código PHP:
<?php
//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");

//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;
    }
    
    
// 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.");
    
    
//------------------------------------------
    //ACA ESTABA EL PROBLEMA!!!!!!!
    //------------------------------------------
    //CUANDO TERMINA LA PRIMER VUELTA DEL FOR EL SCRIPT TE DIRECCIONA A OTRA PAGINA, Y NO LO DEJA TERMINAR, ESTO TENDRIA QUE IR AFUERA DEL FOR, PARA QUE LUEGO DE QUE SE EJECUTE TODO EL FOR COMPLETO TE REDIRECCIONE...
    //Codigo anterior:
    //    header("location: listar_imagenes.php");  // si ha ido todo bien
    //    exit;
}
header("location: listar_imagenes.php");  // si ha ido todo bien
exit;
?>
Saludos!