Foros del Web » Programando para Internet » PHP »

subir imagenes y guardar en el mismo campo bd

Estas en el tema de subir imagenes y guardar en el mismo campo bd en el foro de PHP en Foros del Web. quiero subir 2 archivos de imagen y guardarlo en el mismo registro para que me entiendan tendria que quedar asi: ------------------------------------------------- id / titulo / ...
  #1 (permalink)  
Antiguo 01/10/2008, 19:34
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 2 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
  #2 (permalink)  
Antiguo 01/10/2008, 19:54
Avatar de Netfrank  
Fecha de Ingreso: marzo-2006
Ubicación: Las Talitas - Tucumán
Mensajes: 226
Antigüedad: 18 años
Puntos: 3
Respuesta: subir imagenes y guardar en el mismo campo bd

En vez de insertar el registro en la primera vuelta del bucle, sólo crea una variable con los datos de la imágen 1, en la segunda vuelta concatenas en la misma variable los datos de la imágen 2, y recién insertas el registro en la base de datos...
__________________
-- Franco D. Ocaranza
-- [email protected]
-- http://www.jmqv.com.ar/
  #3 (permalink)  
Antiguo 01/10/2008, 20:15
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: subir imagenes y guardar en el mismo campo bd

si fueras tan amable me podrias dar un ejemplo?

tendria que sacar la parte donde introduzco los datos fuera del bucle?
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
  #4 (permalink)  
Antiguo 01/10/2008, 20:45
Avatar de Netfrank  
Fecha de Ingreso: marzo-2006
Ubicación: Las Talitas - Tucumán
Mensajes: 226
Antigüedad: 18 años
Puntos: 3
Respuesta: subir imagenes y guardar en el mismo campo bd

Exacto, eso lo haces al final del código, antes del header().

Hacé lo siguiente:
Código PHP:
for(...){
...

if(
$i==0){ $img1 "foto/$imagen1"; } elseif($i==1){ $img2 "foto/$imagen2"; }

...
}

$consulta_insertar "INSERT INTO img (id, titulo, descrip, img1, img2) VALUES ('', '', '', '$img1', '$img2')"
    
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); 
__________________
-- Franco D. Ocaranza
-- [email protected]
-- http://www.jmqv.com.ar/
  #5 (permalink)  
Antiguo 02/10/2008, 08:38
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: subir imagenes y guardar en el mismo campo bd

muchas gracias !!! funciono
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
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 15:09.