在React中下载并压缩文件?

时间:2018-12-11 16:46:38

标签: reactjs react-redux zip zipfile jszip

我有一个为用户存储咨询的应用程序。咨询会包含有关用户的数据,并附有咨询文件。我的目标是将附加在咨询中的所有文档以zip格式返回给用户。很简单。

我们有5秒的超时限制。最初,我以为我们可以下载文件并将其压缩在服务器端。这样,我可以创建一个新的终结点,将zip返回给用户。但是由于5秒钟的超时可能无法正常工作。

因此,我正在考虑在客户端下载和压缩文件。前端内置在React中,我一直在研究使用JSZip。尽管我发现使用JSZip的几乎所有东西都在服务器端使用它。

是否可以使用React在客户端下载和压缩文件?有没有我可以使用的图书馆?还是应该全部在服务器端?

1 个答案:

答案 0 :(得分:1)

您可以在客户端使用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为您提供的网址来下载文件