Foros del Web » Programando para Internet » PHP »

bajar imagenes de bd

Estas en el tema de bajar imagenes de bd en el foro de PHP en Foros del Web. Como puedo hacer para guardar en un array las imagenes que bajo de una bd?? Tengo el siguiente codigo pero no funciona: Código PHP: function  ...
  #1 (permalink)  
Antiguo 23/11/2004, 05:53
 
Fecha de Ingreso: junio-2004
Ubicación: ORENSE
Mensajes: 258
Antigüedad: 19 años, 9 meses
Puntos: 0
bajar imagenes de bd

Como puedo hacer para guardar en un array las imagenes que bajo de una bd??

Tengo el siguiente codigo pero no funciona:
Código PHP:
function bd_bajar_imagen($codigo_inmueble){
            
            
$sql='SELECT Imagen FROM IMAGENES WHERE (Codigo_Inmueble="'.$codigo_inmueble.'")';
            
$result=mysql_query($sql);
            
$num=mysql_num_rows($result);
            for(
$i=0;$i<$num;$i++){
                
$contenido=mysql_result($result,0,"Imagen");    
                
$array[$i]=$contenido;
            }
            
            return 
$array;
        } 
  #2 (permalink)  
Antiguo 23/11/2004, 06:43
 
Fecha de Ingreso: junio-2004
Mensajes: 84
Antigüedad: 19 años, 9 meses
Puntos: 0
Antes que nada, decinos como es la estructura de la tabla donde se guardan y que informacion contiene cada campo. Sin eso... no te vamos a poder ayudar ;)
__________________
Repositorio de funciones utiles para programadores y administradores
http://www.particle.com.ar
  #3 (permalink)  
Antiguo 23/11/2004, 06:46
 
Fecha de Ingreso: junio-2004
Ubicación: ORENSE
Mensajes: 258
Antigüedad: 19 años, 9 meses
Puntos: 0
Código PHP:
CREATE TABLE `imagenes` (
  `
Id_fotoint(11unsigned NOT NULL auto_increment,
  `
Codigo_Inmueblevarchar(20NOT NULL default '',
  `
Imagenblob NOT NULL,
  `
Tipovarchar(25NOT NULL default '',
  `
Pesovarchar(15NOT NULL default '',
  
PRIMARY KEY  (`Id_foto`)
) ; 
  #4 (permalink)  
Antiguo 23/11/2004, 07:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. si en tu BD gestionas tus imagenes en "Binario" .. eso de "meterlo en un array" no es muy factible.

Lo lógico es que tengas un script aparte que haga tu consulta a tu BD y obtenga la imagen en cuestión .. monten las cabeceras HTTP adecuadas y la entrege como resultado para que puedas llamar a ese script aparte (que sea una función o no a su vez es lo de menos) bajo un bucle cualquiera ..

Te recomiendo que veas como trabajar en general con archivos binarios desde BD con este tutorial .. Pruebalo y observa como se trabaja.

http://www.forosdelweb.com/f18/tutorial-ejemplo-subir-archivos-bd-guardando-bd-binario-127775/

Un saludo,
  #5 (permalink)  
Antiguo 23/11/2004, 10:03
 
Fecha de Ingreso: junio-2004
Ubicación: ORENSE
Mensajes: 258
Antigüedad: 19 años, 9 meses
Puntos: 0
Pero es que yo estoy haciendo un proyecto con php OO y tal como lo explicas eso es estructurado.Yo que yo necesito es que la funcion de bd me devuelva el array con las imagenes para luego pasarselo a la funcion de controlador,la cual lo almacenara en una variable de sesion para luego visualizarlas en una pagina php que me genera la vista en html,me explico??
  #6 (permalink)  
Antiguo 23/11/2004, 10:06
 
Fecha de Ingreso: junio-2004
Ubicación: ORENSE
Mensajes: 258
Antigüedad: 19 años, 9 meses
Puntos: 0
O no sera mejor que en vez de guardar las imagenes en la bd,lasguarde en el servidor y en la bd guarde sus rutas??
  #7 (permalink)  
Antiguo 23/11/2004, 10:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Da igual si usas OOP o no ...

El manejo de "archivos" binario se trabaja así .. Podrías almacenar tus "imagenes" (hablemos de datos binarios en si) en una sesión .. pero, fijate el tamaño que podría tener una sesión y lo que eso significa (en bytes que gestionar) .. Las sesiones no fueron diseñadas para eso.


Tu puedes crear si quiers tus métodos en tus classes (OOP) que hagan el proceso de conectar a tu BD .. y entregarte la imagen .. mejor dicho lo que tu classe tendrá que hacer es obtener los "identificadores" de tus registros de la imagen .. eso será lo que propages en tus sesiones y lo que tu método "controlador" tendrá que pasarselo al método que genere la vista. Ese método tendrá que llamar a la imagen como ves en los ejemplos que te propongo del minitutorial. Si usas OOP .. tendrás que instanciar tu objeto y llamar al código que obtenga a base de tu consulta SQL tu imagen (el binario de esta) generando las cabeceras HTTP adecuadas. No puedes enviar datos binario así como así a tu "cliente" .. si usas como cliente un navegador tendrás que componer las cabeceras HTTP adecuadas + tus datos binarios para informar a este que tipo de dato le estás enviando. Pues, por la misma técnica podrías gestionar otros tipos de archivos "binarios": .exe , .zip .. etc ...

Cita:
O no sera mejor que en vez de guardar las imagenes en la bd,lasguarde en el servidor y en la bd guarde sus rutas??
Pues .. creo que esto lo tendrías que haber decidio antes .. ¿por qué decidistes almacenar tus imagenes en binario en tus BD? ..

Bueno .. puedes si lo deseas gestionar así tus archivos (imagenes) .. en ese caso es lo mismo que te comentaba antes ..en lugar de crear un array con "identificadores" ahora si quieres pudes pasar el nombre/ruta de tu archivo si lo deseas. Te evitas usar cabeceras HTTP . .pero si quieres un sistema así realmente seguro por ejemplo para no "desvelar" la ruta de tus imagenes .. igualmente en algún momento debes usar cabeceras HTTP y .. eso se gestiona como veras en ese ejemplo.

Es cosa tuya que metas toda la OOP para llegar al mismo fin .. pero la técnica es así. Un código aparte que se ejecute en tu tag de imagen a modo de "lanzador" (<img src="ver_imagen.php?id=tal">) .. ahora, que tu "ver_imagen.php" .. sea tu classe .. instancies tu objeto y le pases el parámetro que corresponda a la imagen que vas a "componer" sus cabeceras HTTP y entregar al buffer de salida el resultado de leer tu campop binario de tu BD o de tu sistema de archivos (por ruta/nombre de archivo) .. es lo de menos.

Un saludo,
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:49.