下载文件时进度条不显示剩余百分比?

Posted

技术标签:

【中文标题】下载文件时进度条不显示剩余百分比?【英文标题】:progress bar not show remaining by percent when download file? 【发布时间】:2021-10-28 19:28:21 【问题描述】:

我在 Angular 8 上工作,我遇到问题进度条不显示 部分下载

假设我下载数据然后 20% 然后 40% 直到到达

到 100% 但进度条停止到 100% 而不显示

还有什么

我的尝试

this._dataService.PostUpload(this.selectedoptions.toString(),this.fileToUpload)
 .subscribe((event: HttpEvent<any>) => 
  switch (event.type) 
    
    case HttpEventType.UploadProgress:
      this.progress = Math.round(event.loaded / event.total * 100);
      console.log(`Uploaded! $this.progress%`);
      break;
    case HttpEventType.Response:
      console.log('Upload successfully created!', event.body);
    
      FileSaver.saveAs(event.body, this.fileToUpload.name + '.xlsx')
      setTimeout(() => 
        this.progress = 0;
      , 1500);

  
)

html组件

<div class="col-md-4">
  <span class="upload" *ngIf="progress > 0">
    progress%
  </span>
</div>

更新帖子

我看到`上传了!控制台进度

但我的问题仍然是 100% 停止并且没有变化

那么进步有什么好处

我进步了,知道还剩下什么

见下图

【问题讨论】:

您是否在控制台中看到"Uploaded! [progress]"?这会将其缩小到获取事件的问题或渲染问题...... 【参考方案1】:

要报告进度事件,您必须在发出请求时将reportProgress option 设置为true

【讨论】:

我将其设置为服务 您上传的文件有多大?如果它非常小,所有进度都会立即发生,因为整个文件是在一个数据包中发送的。 文件达到 100 kb 我的服务如下: PostUpload(selectedoptionsId, file):Observable const formData: FormData = new FormData(); formData.append('file', file,file.name); formData.append('selectedoptions',selectedoptionsId.toString()); return this.http.post(this.url + 'DeliverySys/Upload', formData,reportProgress: true,observe:'events', responseType: 'blob'); 这是一个非常小的文件;转移或多或少会立即发生,中间没有进展报告。尝试使用 50MB 的文件,看看会发生什么?

以上是关于下载文件时进度条不显示剩余百分比?的主要内容,如果未能解决你的问题,请参考以下文章

当 UITableView 单元格中的进度条不可见时,如何更新它们

wget命令详解

在 Flutter 循环进度指示器中显示下载百分比

下载大文件时在进度条上设置百分比不在 0 到 100 之间

[WinFrom]下载文件并显示进度条的实现代码

如何在表格单元格中显示进度?