我正在尝试支持从我的Node js服务器下载多个文件到客户端。通过在我的NodeJS服务器中实现以下逻辑,我可以支持将单个文件发送到客户端。
res.download('group_documents/sample1.pdf','sample1.pdf', function(err){
if (err) {
console.log(err);
} else {
// decrement a download credit etc
}
});
如何重写上述服务器逻辑以支持使用来自客户端的单个请求(浏览器或卷曲请求)下载多个文件?
答案 0 :(得分:3)
在网络浏览器上,您无法一次下载多个文件。 但您可以下载所有必需文件的存档文件。 使用 express-zip npm包,您可以轻松完成。
https://github.com/thrackle/express-zip
安装express-zip。
npm install express-zip
使用以下代码:
res.zip(files);
文件是一个对象数组。 每个对象应该是:
{ path : 'path/to/file', name : 'fileName'}
答案 1 :(得分:0)
如果您的目标客户端是Web浏览器,那么您不能,因为http协议不允许单个请求进行多次下载。
如果你真的需要这样做,那么你需要编写一个自定义客户端应用程序,或者(更简单地)将文件压缩到一些存档中,然后再传输它们。