2015-02-17 21 views
9

Base64 dizesi olarak kodlanmış pdf dosyam var. Bu dize tarayıcıya .pdf formatında dosya olarak nasıl indirilir?Express.js - base64 dizesini PDF dosyası olarak nasıl indirebilirim?

Zaten denedim Ne:

res.set('Content-Disposition', 'attachment; filename="filename.pdf"'); 
res.set('Content-Type', 'application/pdf'); 

res.write(fileBase64String, 'base64'); 
+0

Bir sürü ek akış kullanmak yerine, neden sadece 'res.write (fileBase64String,' base64 ') 'yapmak değil? – mscdex

+0

Evet, teşekkürler, soruyu güncelledim :) Müdahale durumunu istemci tarafında görebiliyorum, ancak dosya asla kaydedilmiyor. – Tomas

+2

Eğer yazdığın buysa, hem verileri yazacak hem de yanıtı kapayacak olan 'res.end (fileBase64String, 'base64')' kullanın. – mscdex

cevap

1
şöyle İlk pdf şifresini çözmek ve daha sonra ikili olarak tarayıcıya göndermek için sona erdi

:

(Kolaylık olması açısından burada node-http kullanmak ancak işlevleri

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); 

) hem de express mevcuttur neydi burada beni deli sürdü

Postman ile test: enter image description here

Ama Gönder düğmesini kullanarak: Ben isteği göndermek için yerine Send Gönder Düğmesi veButton indirin kullanıyordum
Bu istek için pdf dosyasının kaydedildikten sonra bozulur.

İlgili konular