我对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/