Almaceno archivos cargados por el usuario en mongoDB GridFS, cuando quiero mostrar lo mismo a los usuarios, busco el archivo de GridFS en mi servidor express y envío los datos del búfer del archivo solicitado al cliente (React), el cliente luego convierte los datos del búfer en un blob y genera una URL para mostrar el archivo. Todo bien, pero cuando abro la URL, el archivo está vacío (PDF en este caso), aunque los números de página se muestran correctamente, no se muestra ningún contenido del PDF. ¿Qué podría haber salido mal para que no se muestre nada en el PDF? Los datos enviados por el servidor son consumidos como JSON por el cliente.
A continuación se muestra el código para convertir el búfer de matriz en blob y generar una URL para el mismo, donde props.data.data
son los datos del búfer.
let url = props.data? URL.createObjectURL(new Blob([new Uint8Array(props.data.data).buffer],{ type:'application/pdf' })):''
consola registrando los datos del búfer en el cliente, obtengo algo como esto:
[37, 80, 68, 70, 45, 49, 46, 52, 10, 37, 239, 191, 189, 239, 191, 189, 239, 191, 189, 239, 191, 189, 10, 49, 32, 48, 32, 111, 98, 106, 10, 60, 60, 47, 67, 114, 101, 97, 116, 111, 114, 32, 40, 77, 111, 122, 105, 108, 108, 97, 47, 53, 46, 48, 32, 92, 40, 87, 105, 110, 100, 111, 119, 115, 32, 78, 84, 32, 49, 48, 46, 48, 59, 32, 87, 105, 110, 54, 52, 59, 32, 120, 54, 52, 92, 41, 32, 65, 112, 112, 108, 101, 87, 101, 98, 75, 105, 116, 47, 53, …]
consola registrando lo mismo en el servidor, obtengo esto:
<Buffer 25 50 44 46 2d 31 2e 34 0a 25 ef bf bd ef bf bd ef bf bd ef bf bd 0a 31 20 30 20 6f 62 6a 0a 3c 3c 2f 43 72 65 61 74 6f 72 20 28 4d 6f 7a 69 6c 6c 61 ... 207562 more bytes>
Estuve tratando de arreglar esto durante días, pero no pude entenderlo. Cualquier ayuda es apreciada.
Gracias.