Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/11/2004, 10:58
Cluster
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,