Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/01/2006, 06:18
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
- copiando la imagen a nuestro site puedes generar thumbnails de la imagen, puede haber problemas de permisos cuando intentas reemplazar la imagen x ftp directamente pero se soluciona haciendo un chmod y listo, ademas se puede acceder a la imagen fisicamente desde una url
Los thumbnails también los puedes generar desde imagenes que estén en un campo de tu BD (sólo que se tratan con las funciones GD u otras como un "string").

La imagen puede NO quedar accesible por el URL tan sólo colocando dichas imagenes fuera de tu "docummentRoot" y que sea un script PHP el que entregue la imagen tipo:

<img src="dame_imagen.php?img=nose.jpg">

En ese script PHP .. ahí tendrías tu lógica de validaciones y demás para restringir el acceso si lo requieres .. exactamente igual que si la imagen la obtienes por una consulta SQL a tu BD y está en binario en un campo .. sólo que ahora la "lees" con funciones tipo readfile() y compones tus cabeceras HTTP desde la ubicación del path absoluto donde esté el archivo en sí en ese servidor (y sobre todo fuera del "DocumentRoot".

Cita:
- guardando las imnagenes en la base de datos se automatiza mejor el manejo de la ifnormacion con simple delete o update puedo o borrar la imagen. el problema es q cuando intentas guardar la imagen se guarda como BMP y con un tamaño mayor al de la base datos y la imagen real, tampoco no puedes agrandar la iamgen x ejmplo si creo una miniatura de 100 x 100 px si deseas agrandarlo a 120 px 120 px solo saldra con un tamaño de 100 PX..
Realmente la imagen no se guarda como "BMP" .. sino en "binario" (o ASCII codificado en base64 si no me equivoco). Eres tu el que debes guardarte junto con la imagen el formato MIME de esta para luego poder reproducirla correctamente según el formato de esta. Lo mismo haces con el tamaño original de la imagen (si quieres almacenarlo) .. También te puedes guardar el tamaño de la imagen fisico para usarlo con otros fines en la BD a la hora de subir tu imagen a tu BD .. (este dato lo puedes obtener de un archivo físico o bien en un proceso de Upload).

El tema que comentas que queda en la BD algo más grande que el original .. no lo he probado .. pero por la codificación que te comento anteriormente es problable que sea así y por ese motivo.

La imagen la puedes trabajar exactamente igual con funciones como GD para generar todo tipo de "thumbnails" o tratamiento de la imagen. Eso sí .. se ha de tratar como "string" (imagecreatefromstring() .. )

* En resumen ... puedes trabajar de la misma forma los archivos los trates como archivos físicos o estén en tus BD.

Las diferencias sustanciales son de rendimiento, .. trabajar archivos "pesados" (varios Megabytes) sobre la mayoría de BBDD suele ser poco optimio para las consultas SQL .. Pero bueno .. depende del "motor" de BD que uses .. algunos como Mysql no trabajan muy bien campos tipo "BLOB" (o superiores) .. otros como "Oracle" si que lo trabajan mejor. Lo mejor en estos casos es simplemente problarlo en tu caso concreto.

Lo que te facilita mucho trabajar con archivos sobre BBDD integros (en binario) es a la hora de hacer copias de seguridad (respaldos) de tu BD .. todo lo tienes en el "SQL" y no por separado, .. asumiendo que uno tal vez gestiona en una aplicación toda la información ("contenido") de un sitio sobre una BD .. ahí estarían también los archivos/imagenes (realmente dá igual si son imagenes o archivos .. el tratamiento es igual).

Un saludo,