Estoy trabajando en un código base y tengo que extender un controlador para permitir la carga de archivos PDF. Estoy enviando el archivo a través de jquery/ajax con formData.
El backend contiene un marco bastante grande, que tiene su propio tipo de solicitud, por lo que usar algo como formidable está fuera de discusión para manejar el lado del servidor de carga de archivos.
Mi problema: la solicitud POST llega al servidor y cuando registro el parámetro del cuerpo que contiene el archivo, obtengo lo siguiente:
file: [ 37, 80, 68, 70, 45, 49, 46, 51, 10, 37, 255, 255, 255, 255, 10, 56, 32, 48, 32, 111, 98, 106, 10, 60, 60, 10, 47, 84, 121, 112, 101, 32, 47, 69, 120, 116, 71, 83, 116, 97, 116, 101, 10, 47, 67, 65, 32, 49, 10, 62, 62, 10, 101, 110, 100, 111, 98, 106, 10, 55, 32, 48, 32, 111, 98, 106, 10, 60, 60, 10, 47, 84, 121, 112, 101, 32, 47, 80, 97, 103, 101, 10, 47, 80, 97, 114, 101, 110, 116, 32, 49, 32, 48, 32, 82, 10, 47, 77, 101, 100, ... 23741 more items]
Que, según tengo entendido, es un Array Buffer del archivo cargado. Ahora he leído que puedo escribir esto en el sistema de archivos con la biblioteca fs de esta manera:
fs.writeFile(filename, data);Lo que crea el archivo en el servidor, sin embargo, siempre es un archivo dañado y no un PDF real.
¿Qué me estoy perdiendo, supongo que tiene algo que ver con la codificación de formData que no conozco?