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 に答える