reactjs - 在 React 中下载和压缩文件?
问题描述
我有一个存储用户咨询的应用程序。咨询有关于用户的数据,并附有咨询的文件。我的目标是将所有附加到咨询的文件以压缩包的形式返回给用户。很直接。
我们有 5 秒的超时限制。最初我以为我们可以下载文件并将它们压缩到服务器端。这样我就可以创建一个新的端点,将 zip 返回给用户。但由于 5 秒超时,这可能行不通。
所以我正在考虑在客户端下载和压缩文件。前端内置在 React 中,我一直在研究使用JSZip。尽管我发现的几乎所有使用 JSZip 的东西都在服务器端使用它。
是否可以使用 React 在客户端下载和压缩文件?有我可以使用的图书馆吗?或者这一切都应该在服务器端?
解决方案
您可以在客户端使用 JsZip。例如,如果你想下载一张图片,你需要它的 url。然后,用 axios 做一个请求。像这样:
request = (currentUrl: string): Promise<void> => axios({
url: currentUrl,
method: 'GET',
responseType: 'blob',
}).then((response) => {
const url: string = window.URL.createObjectURL(new Blob([response.data]));
});
然后使用 axios 给你的 url 来响应下载你的文件
推荐阅读
- java - org.apache.maven.plugins 的“build.plugins.plugin.version”:maven-surefire-plugin 丢失
- node.js - 我的不和谐 js 机器人在加入时没有在语音频道中说任何话
- c++ - 我是 C++ 新手,我试图调用 make 一个以 2 个类作为参数的类构造函数
- c - M-ary 树的 BFS - C
- php - Laravel SQL 连接 - Artisan Migrate 工作,但应用程序无法连接
- php - 使用时间戳对函数进行单元测试
- python - Python 抓取:在使用 bs4 提取数据后,有没有办法在 find_all 中使用多个属性?
- python - 如何将我的计算机的时间设置器作为无声背景 PID 运行?
- javascript - this.setState({array}) 中发生了什么?
- vba - 如何在 VBA Word 中将选择转换为字符串