0

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

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

我错过了什么?

之前非常感谢。

4

1 回答 1

3

问题是 Geddy 的响应对象没有“setHeader”方法,因此您需要进入并在真正的 Node 响应对象上设置标题。

resp.resp.setHeader('Content-Disposition', 'attachment; filename="' + filename + '"');
于 2013-04-04T04:47:18.773 回答