Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Leer una imagen que está en un servidor (https://www.clubdelphi.com/foros/showthread.php?t=80372)

santiago14 22-09-2012 14:24:34

Leer una imagen que está en un servidor
 
Buenas, tengo el siguiente problema.
Estoy guardando datos de jugadores, dentro de lo que se guarda hay fotos. La base de datos está en un servidor dentro de una LAN, en ese mismo servidor tengo un directorio donde guardo las fotos que van poniendo. En mi tabla de BD quiero poner la dirección de la foto para luego, desde cualquier máquina leerla y mostrarla.
Creo que es mejor tener la dirección física en la bd y la foto en un directorio en lugar de tener la foto dentro de la bd, pero no quisiera compartir el directorio de fotos del servidor ya que podría dar lugar a la "manipulación" manual de las imágenes.
Lo concreto, ¿hay alguna manera de leer esas fotos y mostrarlas sin tener que compartir el directorio?

La cosa es que estoy medio trancado en esto, quisiera alguna ayuda para echar algo de luz al problema.

Espero haber sido claro, Gracias.

Santiago.

santiago14 22-09-2012 17:47:17

Estuve revisando un poco el foro y otros lugares, dicen que a partir de Firebird 1.5 los campos BLOB han sido mejorados y que la bd funciona muy bien a pesar de tenerlos en su estructura. La única desventaja a tener en cuenta que encontré leyendo fue que los backup's no comprimen tanto y demoran mas; algo no tan serio puesto que se puede hacer que el backup se haga de manera automática y a una hora de poco o nada de uso del sistema. Otra desventaja, algo menor creo yo, es el tamaño que adquiere la bd, crece mucho mas y a esto es a lo que quiero llegar ¿se tienen muchos problemas de "roturas" de la tabla, del campo blob o algo parecido cuando se aplica esta forma?

La verdad es que estoy considerando seriamente usar esta técnica, ya que me hace la cosa muy flexible y me permite que se carguen y visualicen las fotos en cualquier módulo del sistema en la red.
También podríamos hacer que al momento de cargar la foto le indicáramos un límite máximo de cantidad de KB que tiene que tener la foto y ello permitiría controlar un poco el crecimiento de la bd.

Bueno, espero haber sido claro. Saludos.

Santiago.

Casimiro Notevi 22-09-2012 18:06:45

Cita:

Empezado por santiago14 (Mensaje 443984)
¿se tienen muchos problemas de "roturas" de la tabla, del campo blob o algo parecido cuando se aplica esta forma?

¿Problemas de roturas de tablas? :confused:, cero, ninguna, nunca jamás. (No estamos hablando de dbase, access o paradox :p:D:D:D)
Yo uso firebird desde que se inventó (y antes interbase) y siempre he almacenado las imágenes, los pdf, etc. en la base de datos, sin ningún problema. Evidentemente la BD tiene que crecer, por fuerza, pero no pasa nada por ello.
Los backups tienen que tardar más, es obvio, no es lo mismo una BD con texto de 2 Gb que una con imágenes de 10 Gb.

Es un tema que se ha tratado muy recurrentemente y siempre se vuelve al debate de "dentro o fuera de la BD", con las ventajas e inconvenientes de cada caso, por lo que finalmente se llega a la conclusión que depende de cada caso.

En mi extrabajo hay clientes que tienen BDs de 10, 20, 30 e incluso uno debe rondar los 50 Gb y nunca han tenido problemas por eso, salvo la lógica tardanza en hacer un backup o restore.
Pero desde que era firebird 1.0 hasta hoy en día, ninguno ha tenido problemas, nada de nada, nunca.
Los únicos problemas son roturas de disco y cosas así, algo totalmente ajeno a la BD.

Tú debes estudiar tu caso para llegar a la conclusión de si te interesa "dentro o fuera".

Desde luego no tendrías el problema que tienes ahora :D

EDITO: Se me olvidó mencionar que en el 99,99% de los casos, los servidores son Linux.

santiago14 22-09-2012 19:01:22

Gracias compañero, creo que me voy a poner a desarrollar la cosa para poner las fotos dentro de la bd.
Igualmente les consulto mas dudas y les comento como me fue.

Saludos, Santiago.

santiago14 22-09-2012 23:33:58

FiedlType correcto para almacenar imágenes
 
Tengo una pequeña dudas mas, ¿cuál sería el tipo de campo correcto para poner una imagen?

Código SQL [-]
BLOB SUB_TYPE 0 SEGMENT SIZE 100 <-- (Este es Binary, SEGMENT SIZE lo puse yo)
BLOB SUB_TYPE 1 SEGMENT SIZE 100 <-- (Este es Text, SEGMENT SIZE lo puse yo)
¿O cualquiera es lo mismo?

Saludos, Santiago.

Casimiro Notevi 22-09-2012 23:42:44

Yo siempre uso esto:
Código SQL [-]
create domain domImagen blob sub_type 0; 
create domain domComentarios blob sub_type text;

Mira este mensaje por si tienes alguna duda.


La franja horaria es GMT +2. Ahora son las 19:36:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi