res.download()在我的情况下不起作用

我正在使用nodejs和expressjs框架从服务器下载文件’jsonFile.json’。

我正在使用以下代码

res.get('/download', function(req, res) {

res.setHeader('Content-disposition', 'attachment; filename=jsonFile.json');

res.setHeader('Content-Type', 'text/json');

res.download(__dirname + 'jsonFile.json');

}

});

但这会导致对整个文件内容的响应。

我期望浏览器要我将文件保存在本地磁盘中。

如何将文件保存在本地磁盘中?

回答:

让Express设置正确的标头,然后执行以下操作:

res.get('/download', function(req, res) {

res.download(__dirname + 'jsonFile.json', 'jsonFile.json');

});

(doc)

由于您是/download通过AJAX调用进行请求的,因此您必须更改设置,因为大多数(全部?)浏览器在这种情况下不会显示下载对话框。

相反,您可以从前端代码创建一个新窗口来触发对话框:

window.open('/download?foo=bar&xxx=yyy');

以上是 res.download()在我的情况下不起作用 的全部内容, 来源链接: utcz.com/qa/412936.html

回到顶部