Сохранить файл из данных url base64 в pdf

#node.js #pdf #fs

#node.js #PDF #fs

Вопрос:

Я создаю приложение react, в котором у меня есть поле, позволяющее пользователям загружать файлы PDF.

Я успешно загрузил и отправил файлы в виде строки base64 на сервер, и я получаю его, однако у меня возникли проблемы с сохранением файла обратно в pdf, вот что я пробовал:

 const fs = require("fs");
const invoice = { fileData: "data:application/pdf;base64,JVBERi0xLjandtherestofthedatastring..." };

const invoiceFileContents = new Buffer.from(invoice.fileData, "base64");
fs.writeFileSync(__dirname   "invoicetest.pdf", invoiceFileContents);
 

Это создает файл pdf, но я не могу его открыть, Adobe говорит, что он сломан.

Ответ №1:

Мне удалось решить эту проблему, добавленная строка перед всей строкой данных data:application/pdf;base64, должна быть обрезана:

 const invoiceFileContents = new Buffer.from(
    invoice.fileData.substring(invoice.fileData.indexOf("base64")   7),
    "base64"
  );