Node js 从服务器提供文件正文并在浏览器中下载



我有一个文件存储库,当我从浏览器调用它时,它会自动下载文件,这很好。 但是我想在我的服务器上执行此请求,然后将文件结果提供给浏览器。这是来自我的服务器的 get 请求的示例。

downloadFile(req , res , next) {
let options = {
url: 'url to my file repo',
};
request(options, function (err, resp, body) {
if (err) {
res.status(500).send("");
return
}
for (const header in resp.headers) {
if (resp.headers.hasOwnProperty(header)) {
res.setHeader(header, resp.headers[header]);
}
}
resp.pipe(res);
})
}

请求工作正常,当我从浏览器访问我的服务器时,它开始下载文件。一切似乎都很好,除了一件事,文件无法打开。这种文件格式无法打开,图像播放器说(例如,如果文件是图像(。 问题出在哪里,是我从服务器提供文件的方式吗? 提前谢谢你。我浪费了很多时间,找不到解决方案。

因为您可能想要发送的是请求的正文(例如图像的数据(。 所以代替 resp.pipe(res(:

res.send(body)

使用浏览器的开发人员模式检查在服务器和浏览器之间传递的网络消息。

最新更新