我想在用户单击链接而不是在浏览器中打开链接时提示用户下载。
使用expressJS,它应该是这样的:
app.get('/download', function (req, res) {
res.download('public/uploads/sample.pdf');
});
如何使用 GeddyJS 做到这一点?
我尝试了这段代码,但它仍然在浏览器中打开它,这意味着“resp.setHeader”不起作用。
this.download = function (req, resp, params) {
var filename = 'sample.pdf';
var file = 'public/uploads/sample.pdf';
resp.setHeader('Content-Disposition', 'attachment; filename="' + filename + '"');
resp.sendFile(file);
};
我错过了什么吗?
非常感谢。
最佳答案
问题是 Geddy 的响应对象没有“setHeader”方法,因此您需要进入真实的 Node 响应对象并设置 header 。
resp.resp.setHeader('Content-Disposition', 'attachment; filename="' + filename + '"');
关于javascript - 强制下载不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15799837/