Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con archivos en campos BLOB

Estas en el tema de Problema con archivos en campos BLOB en el foro de Mysql en Foros del Web. Deje un mensaje similar en el foro de PHP. Puede que a los moderadores esto no les guste, pero es que realmente lo que me ...
  #1 (permalink)  
Antiguo 15/12/2007, 13:05
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
Exclamación Problema con archivos en campos BLOB

Deje un mensaje similar en el foro de PHP. Puede que a los moderadores esto no les guste, pero es que realmente lo que me pasa no se a quien "hecharle la culpa" si a PHP o a MYSQL

Cuesto que me pasa:

Tengo un script muy similar al de un ejemplo del foro que permite guardar archivos (de cualquier tipo) en campos de la base de datos

Este script ya esta funcionando en un sistema, desde hace un par de meses. Y funciona bien. Esta preparado para guardar/mostrar cualquier tipo de archivos, no solo PDF.

El punto es que desde hace una semana, empezamos a tener un problema con ciertos archivos PDF. No con todos. Los PDF que subimos (~300kb de promedio) son una especie de planos tecnicos. Osea tienen graficos, lineas, etc. No es meramente texto.

Vean lo que sucede:

* Si miramos el archivo PDF original desde Acrobat Reader 7 o Foxit Reader, (previo a subirlo al sistema) se ve perfecto.
* Si lo subimos por nuestro sistema, al server llega bien. Lo hemos mostrado previo a guardarlo en la base, para hacer testeos.
* En la base se guarda seguro. Pero ya dudamos si bien o corrupto.
* Al leerlo de la base y mostrarlo, sucede que:
o Acrobat Reader se abre. Muestra siempre el mensaje de alerta "Problema al leer el documento (111)". Y luego muestra el archivo PDF, pero no completo. Solo muestra la ultima capa de graficos del archivo. Las capas superiores con otras lineas o textos no se muestran.
o Lo mismo sucede con Foxit Reader excepto que no muestra ningun mensaje de error.


Cuando me refiero a capa, no se si estoy aplicando bien el termino. Me quiero referir a que nuestros PDF, muestran planos tecnicos, como dije. Y al verlos da la sensacion de ser capas o layer (como en un programa de diseño) una arriba de la otra. Cada una con ciertas imagenes. La capa que vemos es la de mas abajo (o mas atras como quieran verlo)

Es muy extraño el comportamiento ya que no lo hace con todos los PDF.
No tenemos acceso al software, y/o a la persona quien genera esos PDF, como para averiguar algo.
No encontre en Google nada relacionado el mensaje puntual de error que muestra Acrobat.

Ojala puedan darme una pista, ya que es de vital importancia saber como solucionar el tema. Y (tal vez) se me ocurre que se deba modificar la rutina de carga a la base ya que es casi indudable que la info se guarda en forma corrupta en ciertos casos.

MUCHAS GRACIAS de antemano
  #2 (permalink)  
Antiguo 16/12/2007, 11:03
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Problema con archivos en campos BLOB

No voy a tirarle la culpa a MySQL o PHP.

PHP, es un lenguaje de programación web, aunque el código esté bien a simple vista, es código y este es generado por personas por lo que puede tener errores.

MySQL, es una Base de Datos o un almacén de datos. Si los datos llegan bien, los deberías recuperar bien. Aquí utilizamos el término de... Si basura entra, basura sale.

Ahora, si queres algo bastante funcional o liviano, lo que podrían hacer es cambiar ese campo BLOB por un VARCHAR. Al hacer esto, creas en el servidor web un folder o carpeta clasificado o identificado de alguna forma, guardas ahí los archivos y en el campo VARCHAR, solo almacenas la ruta relativa.

Al subir los archivos, lo haces a ese directorio y no un campo de la BD y al tratar de recuperarlo, solo accesas la ruta relativa para saber donde está el archivo y lo puedas abrir.

Así te aseguras que el archivo siempre va a estar intacto.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 17/12/2007, 03:25
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Problema con archivos en campos BLOB

Te agradezco la idea. Y la entiendo.

El tema es que el sistema ya esta andando, por lo que seria algo molesto/largo/tedioso de hacer.

Y ademas como cuento, es con algunos archivos puntuales de tipo PDF, ni siquiera con todos.

Estaria bueno investigar que pasa, pues podria darse que se haya encontrado un bug, o bien por el lado de Mysql o bien por el lado de las funciones que usa el script desde php
  #4 (permalink)  
Antiguo 21/06/2008, 18:32
 
Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con archivos en campos BLOB

cual es el script que te permite subir y luego ver archivos pdf, aunque sea podrias brindarme la url porque no lo puedo encontrar desede ya muchas gracias
  #5 (permalink)  
Antiguo 21/06/2008, 19:44
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Respuesta: Problema con archivos en campos BLOB

doy una idea, aunque creo que un tanto desprolija. Agradecería que me sugieran alguna forma mejor:

1- Subo el archivo (buscar upload de archivos en el google o en este foro)
2- antes de que se cree en la carpeta del servidor, chequeo que no exista un archivo con el mismo nombre sino se pisan, si existe le corro un random de unas cuantas letras y se lo adiciono al nombre del archivo.
3-Inserto el archivo en la carpeta y el nombre del archivo resultante en un campo de la bd. guardo solo el nombre y no la ruta, porque en este caso uso solo una carpeta y ante un eventual cambio de path solo tengo que modificar en el código una sola vez y no n veces en la bd.

Paso solo la idea porque el codigo lo hice alguna vez en asp 3 y no lo encuentro.


hay alguna clase armada que haga esta gestión?


gracias desde ya por las respuestas y si a alguien le sirve de esta forma, barbaro.


saludos
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 22:25.