NodeJS - Как вернуть PDF из Base64 без сохранения файла на сервере? - PullRequest
2 голосов
/ 29 января 2020

Вот мой сценарий:

  • У меня есть приложение, встроенное в Node с Express;
  • У меня есть внешний API, который возвращает PDF-файл Base64;
  • Я должен получить этот Base64 и открыть файл для пользователя;
  • Я не могу сохранить PDF на сервере.

Я пробовал много способов, и я могу ' t открыть файл пользователю.

Способы, которые я пробовал:

const buff = Buffer.from(myBase64, 'base64');
const file = fs.writeFileSync('boleto.pdf', buff, { encoding: 'base64' });

try {
  res.setHeader('Content-Length', file.size);
  res.setHeader('Content-Type', 'application/pdf');
  res.setHeader('Content-Disposition', 'attachment; filename=boleto.pdf');
} catch (e) {
  return res.status(404).send({ error: e, message: 'File does not exist.', statusCode: 404 });
}
const buff = Buffer.from(myBase64, 'base64');
const file = fs.writeFileSync('boleto.pdf', buff, { encoding: 'base64' });

try {
  res.contentType('application/pdf');
  return res.status(200).sendFile('boleto');
} catch (e) {
  return res.status(404).send({ error: e, message: 'File does not exist.', statusCode: 404 });
}
const buff = Buffer.from(myBase64, 'base64');
const file = fs.readFileSync(buff, { encoding: 'base64' });

try {
  res.contentType('application/pdf');
  return res.status(200).sendFile(file);
} catch (e) {
  return res.status(404).send({ error: e, message: 'File does not exist.', statusCode: 404 });
}

Может ли кто-нибудь мне помочь?

...