强制下载无效

时间:2013-04-03 23:09:43

标签: javascript node.js download geddy

我想在用户点击链接而不是在浏览器中打开链接时提示用户下载。

使用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);
};

我错过了什么吗?

之前非常感谢。

1 个答案:

答案 0 :(得分:2)

问题是Geddy的响应对象没有'setHeader'方法,所以你需要进入并在真实的Node响应对象上设置标题。

resp.resp.setHeader('Content-Disposition', 'attachment; filename="' + filename + '"');