ColdFusion - Cold Fusion error al recuperar archivo

 
Vista:

Cold Fusion error al recuperar archivo

Publicado por Nova (1 intervención) el 03/06/2013 17:37:19
Buenas a todos.

Desde hace tiempo tenemos montado una tienda online, en la que el cliente sube unos archivos pdf al servidor, y se inserta binario en la base de datos. De esta manera, cuando un usuario realiza un pago, la aplicacion mediante este código:

<cfset baos = createObject("java", "java.io.ByteArrayOutputStream")>
<cfset baos.write(articulo_datos.ArchivoDigital)>
<cfcontent type="application/pdf" variable="#baos.toByteArray()#">
<cfsetting enableCFoutputOnly="no">

decodifica el campo binario de la base de datos para que el cliente se pueda descargar el archivo.

Sin enmargo, desde hace dos semanas tuvimos una caída en el servidor y tuvimos que restaurar todos los archivos y registros incluido la base de datos, y a raíz de esto, cuando intentas descargar cualquier archivo, solo se descargan 62.5KB. Si el archivo es menor de 62.5KB no hay problema, el pdf se visualiza correctamente pero si pesa más, solo se descargan 62.5 KB y los archivos pdf quedan incompletos y corruptos. Hemos probado subir de nuevo todos los archivos y actualizar uno a uno cada producto pero sigue igual.

No sabemos si habrá algún parámetro de configuración en el que se pueda limitar el número de Bytes a decodificar, en cualquier caso es un grave problema ya que el cliente paga y se le descargan pdf corruptos e incompletos.

Estoy perdidísimo y ya no se por donde tirar.

Gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problema al descargar archivos PDF incompletos desde la base de datos

Publicado por Alejandro (108 intervenciones) el 14/09/2023 22:05:32
El problema que estás experimentando con la descarga de archivos PDF incompletos desde la base de datos parece estar relacionado con la forma en que ColdFusion está manejando los datos binarios al descargarlos. El tamaño limitado de 62.5KB sugiere que podría haber una restricción en la cantidad de datos que se están extrayendo de la base de datos. Aquí hay algunas posibles soluciones y pasos para diagnosticar el problema:

1. Verifica la base de datos:

Asegúrate de que los datos binarios en la base de datos no estén truncados o dañados de alguna manera. Puedes verificar esto examinando directamente los datos binarios almacenados en la base de datos para asegurarte de que sean correctos y completos.

2. Configuración de ColdFusion:

Verifica la configuración de ColdFusion para asegurarte de que no haya restricciones en la cantidad de datos binarios que se pueden manejar. Puedes revisar las configuraciones de JVM (Java Virtual Machine) y ajustar los valores relacionados con el tamaño de memoria, si es necesario.

3. Tamaño de la columna en la base de datos:

Asegúrate de que el tamaño de la columna que almacena los datos binarios en la base de datos sea lo suficientemente grande para acomodar los archivos PDF completos. Si la columna es demasiado pequeña, los archivos se truncarán al insertarse en la base de datos.

4. Prueba con otros métodos:

En lugar de utilizar `ByteArrayOutputStream`, intenta utilizar otras técnicas para extraer y servir el archivo PDF desde la base de datos. Puedes utilizar funciones como `toBinary()` en ColdFusion para extraer los datos binarios directamente desde la base de datos.

1
2
<cfset pdfData = toBinary(articulo_datos.ArchivoDigital)>
<cfcontent type="application/pdf" variable="#pdfData#">

5. Verifica el proceso de restauración:

Asegúrate de que el proceso de restauración de la base de datos no haya causado algún problema en la columna que almacena los datos binarios. Verifica si el proceso de restauración afectó de alguna manera a los registros o a los datos almacenados.

6. Actualización de ColdFusion:

Si estás utilizando una versión antigua de ColdFusion, considera actualizar a una versión más reciente, ya que podría haber problemas conocidos que se han solucionado en versiones más nuevas.

7. Monitoreo de errores:

Habilita el monitoreo de errores en ColdFusion para obtener información detallada sobre cualquier error que pueda estar ocurriendo durante la descarga de los archivos PDF. Esto podría proporcionar pistas adicionales sobre la causa del problema.

Si después de seguir estos pasos no logras resolver el problema, te recomiendo ponerse en contacto con el soporte técnico de ColdFusion o con un experto en bases de datos y ColdFusion para obtener asistencia específica sobre tu entorno y configuración.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar