Ver Mensaje Individual
  #9 (permalink)  
Antiguo 03/08/2011, 11:22
chilecr4
 
Fecha de Ingreso: julio-2010
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Uso de imagenes BLOB, de forma dinámica en PHP

Hola GatorV, gracias por el interés.

Esa opción ya la había analizado, pero precisamente quiero evitar hacer la consulta en un archivo del tipo "fotoProducto.php", ya que trabajo orientado a objetos, por lo que tendría un objeto Producto que contiene los atributos (id, nombre, descripción, precio, foto) y la idea es cargar los datos del producto en una sola consulta (Producto->load(); => select * from productos where id = X).

Una vez cargados los datos, solo hago gets de los atributos.
Producto->getNombre();
Producto->getPrecio();
Y como lo mencioné en el primer post, dentro de las pruebas que hice y que me resultaron fue escribir de forma binaria un archivo vacío.
El código sería algo así:
$file = fopen('dummyFile_001.myext', 'wb');
fwrite($file, Producto->getFoto());
fclose($file);

En este caso, configuré apache para que tratara la extensión "myext" como archivo de imagen. Funciona bien, muestra la imagen. El problema se da porque si dos personas acceden a la misma página con un distinto idproducto, la foto será distinta, pero el archivo "dummyFile_001.myext" será el mismo, por ende si el "navegador1" no carga la foto antes de que "navegador2" realice la petición, "navegador1" mostrará "foto2", porque "navegador2" ya hizo la petición y el servidor re-escribió el contenido de "dummyFile_001.myext" con el contenido de "foto2".

Intentaré mostrarlo más claro. El ideal sería así:

1. navegador1 => peticion1
2. peticion1 => escribe contenido foto
3. navegador1 => muestra foto con contenido de peticion1
4. navegador2 => peticion2
5. peticion2 => escribe contenido foto
6. navegador2 => muestra foto con contenido de peticion2

Pero puede darse que:

1. navegador1 => peticion1
2. peticion1 => escribe contenido foto
3. navegador2 => peticion2
4. peticion2 => escribe contenido foto
5. navegador1 => muestra foto con contenido de peticion2 (incorrecto)
6. navegador2 => muestra foto con contenido de peticion2

No estoy seguro si hay forma de solucionar este problema de la forma en lo que yo quisiera, pero por eso consulto a ver si alguien si sabe.

Saludos y gracias,