javascript - 强制下载不起作用

标签 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);
};

我错过了什么吗?

非常感谢。

最佳答案

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

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

关于javascript - 强制下载不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15799837/

相关文章:

javascript - Puppeteer:关闭地理定位权限请求

javascript - 使用 Javascript 从选项 HTML 中获取名称

javascript - node.js 中的 async.eachSeries

php - 如何通过 PHP AJAX 调用安全地更改玩家数据?

javascript - 直接对数据库操作执行等待将给出未定义的结果

apache - java.io.NotSerializableException : org. apache.camel.component.file.GenericFile

javascript - 主干模型服务器端和内存处理

angularjs - http-server 未在 systemd 中启动

javascript - 响应式下载

linux - 使用双 ssh 从服务器下载文件