node.js - 如何使用 ExpressJS 一次 API 调用下载多个文件

标签 node.js reactjs api express download

我对expressjs很陌生,我正在开发一个充当API应用程序的Web应用程序。还有一个 react 前端应用程序。当在客户端应用程序中单击按钮时,它将向后端应用程序发送 API 调用并下载文件。该场景运行良好。使用以下代码。

  const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`;
  res.download(file); // Set disposition and send it.
});

但现在我需要通过单击按钮下载多个文件。我怎样才能做到这一点 。 有人可以帮我吗?

最佳答案

一个 HTTP 响应只能有一个文件。实际上,HTTP 中的“下载文件”意味着提供带有 Content-Disposition: attachment 的响应。 header ,以提示客户端此响应应保存到文件系统而不是在浏览器中呈现。

要下载多个文件,您希望客户端代码发起多个HTTP请求(可能发送到不同的URL),并且服务器可以使用不同的文件响应每个请求。请注意,许多浏览器将拒绝下载多个文件来响应单个用户操作(因为担心用户会被不需要的文件淹没),或者至少会在执行此操作之前提示确认。

如果您无法更改客户端代码以发出多个请求,则需要将文件打包到单个文件存档中。

关于node.js - 如何使用 ExpressJS 一次 API 调用下载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60193843/

相关文章:

http - 开发网络服务器有哪些不同的方法?

javascript - Npm 不创建 Gruntfile.js

javascript - 在 React 中从查看模拟时钟更改为数字时钟

c# - 在 Swagger 中添加多个 header 值

node.js - Node 使用 child_process 启动 VLC Player

node.js - 如何在自定义 Jade 过滤器中渲染 block ?

javascript - React Array Prop 在渲染时发生变化

javascript - react : What I should write in propTypes when in form I use input type ="file' ?

api - 无法创建对某些现有YouTube评论的回复

Node.js 在不超过一定限制的情况下尽快调用函数