Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/10/2008, 19:34
marcinf2
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 3 meses
Puntos: 1
subir imagenes y guardar en el mismo campo bd

quiero subir 2 archivos de imagen y guardarlo en el mismo registro para que me entiendan
tendria que quedar asi:
-------------------------------------------------
id / titulo / descrip /imagen1/ imagen2 /
-------------------------------------------------
10 foto blabla imagen1 imagen2
--------------------------------------------------

con el codigo que hice puedo subirlas y me la guarda de esta forma:

-------------------------------------------------
id / titulo / descrip /imagen1/ imagen2 /
-------------------------------------------------
10 foto blabla imagen1
--------------------------------------------------
11 foto blabla imagen2
--------------------------------------------------

aca esta el formulario que sube

Código PHP:
<HTML>
<HEAD>
<TITLE>Binario a BD</TITLE>
</HEAD>
<BODY>
<?php
if (isset($_GET['proceso'])){
echo 
$_GET['proceso']."<br>";
}
?>
<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>
</BODY>
</HTML>
y este codigo la sube a la bd copia en un directorio y renombra con un nombre aleatorio al archivo

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
            
$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
    
}
    
    
//insertamos los datos en la BD.
    
$consulta_insertar "INSERT INTO img (id, titulo, descrip, img1, img2) VALUES ('', '', '', 'foto/$imagen1', '')";
    
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;
?>
logicamente cuando el bucle lista la 1 imagen lo guarda en el 1registro
al dar la 2 vuelta guarda la 2 imagen en el 2 registro

se puede hacer que guarde los 2 archivos en el mismo registro? y como?
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com