gpt4 book ai didi

javascript - Meteor:通过单击按钮获取服务器端生成的文件

转载 作者:行者123 更新时间:2023-11-27 23:03:04 24 4
gpt4 key购买 nike

我正在使用 pdfKit 生成一些 pdf 文件。用户应该单击一个按钮来获取该文件 - 该文件是当时在服务器上生成的。此外,我使用 Picker 进行服务器端路由。

server.js

Picker.route('/generate/getPdf', function(params, req, res, next) {
var doc = new PDFDocument({size: 'A4', margin: 50});
doc.fontSize(12);
doc.text('PDFKit is simple', 10, 30, {align: 'center', width: 200});
res.writeHead(200, {
'Content-Type': 'application/pdf',
'Content-Disposition': 'attachment; filename=test.pdf'
});
res.end(doc.outputSync());
});

html

<template name="example">
<button id="generatePdf">Generate it</button>
</template>

client.js

Template.example.events({
'click #generatePdf': function(event) {
HTTP.call( 'GET', 'http://localhost:3000/generate/getPdf', {}, function( error, response ) {
if (error) {
console.warn(error);
}
});
}
});

我希望在单击按钮时获得 pdf 文件,但什么也没有发生。如果我手动访问该网址,我将获取该文件。那么我做错了什么?

最佳答案

由于您已将 Content-Disposition header 设置为附件,因此最简单的解决方案是在新选项卡中开始下载。

尝试删除您的 click #generatePdf 事件处理程序并在模板中执行类似以下操作:

<a id="generatePdf" href="//localhost:3000/generate/getPdf" target="_blank">Click Me</a>

关于javascript - Meteor:通过单击按钮获取服务器端生成的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36874274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com