skończyło się zdekodować pdf, a następnie wysłać go do przeglądarki jako binarne następująco:
(Dla uproszczenia używam node-http
tutaj, ale funkcje są dostępne w express
jak dobrze)
const http = require('http');
http.createServer(function (req, res) {
getEncodedPDF(function (encodedPDF) {
res.writeHead(200, {
'Content-Type': 'application/pdf',
'Content-Disposition': 'attachment; filename="filename.pdf"
});
const download = Buffer.from(encodedPDF.toString('utf-8'), 'base64');
res.end(download);
});
}).listen(1337);
Co zawiózł mnie orzechy tutaj było badanie z Postman:
używałem Wyślij przycisk zamiast wysyłać i PobierzButton złożyć wniosek:
Ale używając Wyślij przycisk dla tego żądania powoduje to, że plik pdf zostaje uszkodzony po zapisaniu.
Zamiast używać wielu dodatkowych strumieni, dlaczego nie po prostu zrobić 'res.write (fileBase64String, 'base64')'? – mscdex
Tak, dzięki, zaktualizowałem pytanie :) Mogę zobaczyć status odpowiedzi OK po stronie klienta, ale plik nigdy nie jest zapisywany. – Tomas
Jeśli to wszystko, co piszesz, użyj 'res.end (fileBase64String, 'base64')', co spowoduje zapisanie danych i zamknięcie odpowiedzi. – mscdex