我有一个为用户存储咨询的应用程序。咨询会包含有关用户的数据,并附有咨询文件。我的目标是将附加在咨询中的所有文档以zip格式返回给用户。很简单。
我们有5秒的超时限制。最初,我以为我们可以下载文件并将其压缩在服务器端。这样,我可以创建一个新的终结点,将zip返回给用户。但是由于5秒钟的超时可能无法正常工作。
因此,我正在考虑在客户端下载和压缩文件。前端内置在React中,我一直在研究使用JSZip。尽管我发现使用JSZip的几乎所有东西都在服务器端使用它。
是否可以使用React在客户端下载和压缩文件?有没有我可以使用的图书馆?还是应该全部在服务器端?
答案 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为您提供的网址来下载文件