我想在用户点击链接而不是在浏览器中打开链接时提示用户下载。
使用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);
};
我错过了什么吗?
之前非常感谢。
答案 0 :(得分:2)
问题是Geddy的响应对象没有'setHeader'方法,所以你需要进入并在真实的Node响应对象上设置标题。
resp.resp.setHeader('Content-Disposition', 'attachment; filename="' + filename + '"');