繁体   English   中英

观察文件上传/下载过程进度的最佳方法是什么?

[英]What is the best way to observe the progress of a file upload/download process?

给定一个 Spring Boot REST API 和一个 Angular 前端,我正在寻找一种方法来维护有关文件上传/下载进度的概述。

我遇到了一篇很好的文章,其中详细解释了如何实现此功能。 据我了解,这似乎是在我的客户中实现的整个逻辑。 看来我可以在我的 POST 请求的 HttpOptions 中设置一个属性reportProgress 订阅 POST 请求时,我正在检查返回的 UploadProgress 类型的UploadProgress ,其中包含属性loadedtotal

无论如何。 我想知道:

  1. 解释的解决方案是否仅适用于文件上传,还是有类似的方法来查看文件下载的进度?
  2. 这个解决方案背后的想法是什么?

我说的第二点是什么意思?

为了查看上传/下载过程的进度,服务器需要通知我的客户端已接收/发送了多少数据。 由于我的后端是 REST API,我需要每 x 秒发送一个额外的请求,询问“您收到了多少数据”或“您发送了多少数据”。 至少这是我对 REST API 的理解。 我在这一点上正确吗? 如果是这样,在上述方法中是如何实现的? Spring Boot 是否会不断询问我的服务器它收到了多少数据?

这个解决方案有替代品吗?

我正在考虑 websockets:websocket 允许我的客户端和服务器之间的双向通信:服务器应该能够只通知客户端接收到的数据量,而客户端不必经常询问它。 这可能是一个更好的选择吗?

使用reportProgress进行事件报告将是更好的选择。 据我了解,实际请求只有在上传完成后才会发送到 API。 事件进度报告是 Angular HttpClient 的特性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM