2016-08-08 2 views
0

im используя html-pdf пакет для узла, и мне нужно отправить файл в виде ответа. это мой реальный код на pdf.create функцииОтправить двоичный файл pdf с экспресс

pdf.create(html, options).toStream((err, stream) => { 
    if(err) throw err; 
    stream.pipe(fs.createWriteStream(__dirname + '/gen.pdf')); 


    var file = fs.createReadStream(__dirname + '/gen.pdf'); 
    //file.pipe(res); 

    res.setHeader('Content-Type', 'application/pdf'); 
    res.setHeader('Content-Disposition', 'attachment; filename="gen.pdf"'); 
    res.sendFile(__dirname+'/gen.pdf'); 
}); 

ответ

0

Почему не просто поток непосредственно в ответ? Например:

pdf.create(html, options).toStream((err, stream) => { 
    if (err) throw err; 
    res.setHeader('Content-Type', 'application/pdf'); 
    res.setHeader('Content-Disposition', 'attachment; filename="gen.pdf"'); 
    stream.pipe(res); 
}); 
+0

Я тестирую с ** почтальоном ** (chrome app), и я получаю txt-файл с именем _response.pdf.pdf_ –

Смежные вопросы