Foros del Web » Programando para Internet » PHP »

No introduce el ultimo archivo dentro de BD

Estas en el tema de No introduce el ultimo archivo dentro de BD en el foro de PHP en Foros del Web. tengo este formulario que sube 4 archivos de imagen y dos campos de textos a la Bd Código PHP: < FORM enctype = "multipart/form-data"  method = ...
  #1 (permalink)  
Antiguo 02/10/2008, 09:06
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 3 meses
Puntos: 1
No introduce el ultimo archivo dentro de BD

tengo este formulario que sube 4 archivos de imagen y dos campos de textos a la Bd

Código PHP:
<FORM enctype="multipart/form-data" method="post" action="insertar.php">
titulo:&nbsp;<input type="text" name="titulo" id="titulo">
<
br><br>
descrip:&nbsp;<input type="text" name="descrip" id="descrip">
<
br><br>
Archivo: <INPUT type="file" name="archivo[]" size="30"><br><br>
Archivo: <INPUT type="file" name="archivo[]" size="30"><br><br>
Archivo: <INPUT type="file" name="archivo[]" size="30"><br><br>
Archivo: <INPUT type="file" name="archivo[]" size="30"><br><br>
<
INPUT type="submit" name="submit" value="Subir archivo">
</
FORM
y este codigo que me sube los archivos a una carpeta y lo introduce en Bd

insertar.php

Código PHP:
<?php
//establece una conexión con la base de datos.
$conexion mysql_connect("localhost","usuario","password") 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
            
$imagen1 rand(0,9999999999).rand(100,9999).rand(100,9999).'.'.$sep[1];
          
            
//copio al directorio especificado
            
move_uploaded_file $_FILES 'archivo' ][ 'tmp_name' ][$i], $destino '/' .$imagen1);  // 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
    
}
    
  if(
$i==0){ $img1 $imagen1; } elseif($i==1){ $img2 $imagen1; }
  if(
$i==3){ $img3 $imagen1; } elseif($i==4){ $img4 $imagen1; }  
    
}
//insertamos los datos en la BD.
    
$consulta_insertar "INSERT INTO img (id, titulo, descrip, img1, img2, img3, img4) VALUES ('', '$titulo', '$descrip', '$img1', '$img2', '$img3', '$img4')";
    
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;
?>
solo me sube los 3 archivos de imagen no los 4 que tengo a la base de datos

supongo que esta linea esta mal pero no se como arreglarla si es asi

Código PHP:
  if($i==0){ $img1 $imagen1; } elseif($i==1){ $img2 $imagen1; }
  if(
$i==3){ $img3 $imagen1; } elseif($i==4){ $img4 $imagen1; } 
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
  #2 (permalink)  
Antiguo 02/10/2008, 09:12
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: No introduce el ultimo archivo dentro de BD

los solucione tenia puesto mal un numero de indice

el codigo es este

Código PHP:
  if($i==0){ $img1 $imagen1; } elseif($i==1){ $img2 $imagen1; }
  if(
$i==2){ $img3 $imagen1; } elseif($i==3){ $img4 $imagen1; } 
que pasa si tengo muchos archivos de imagen que deberia poner en ves de tantos IF ?
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
  #3 (permalink)  
Antiguo 02/10/2008, 09:15
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: No introduce el ultimo archivo dentro de BD

Hola puedes hacerlo asi:
Código PHP:
if($i==0){ $img1 $imagen1; }
 elseif(
$i==1){ $img2 $imagen1; }
elseif(
$i==2){ $img3 $imagen1; }
elseif(
$i==3){ $img4 $imagen1; }  
else{ echo 
"imagen no concebida";} 
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:57.