加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET Core 2.0和Angular 4.3文件上传进度

发布时间:2020-12-15 18:59:10 所属栏目:asp.Net 来源:网络整理
导读:使用新的Angular 4.3 HttpClient,如何在向客户端上报上传进度的同时上传和访问ASP.NET Core 2.0控制器中的文件? 解决方法 这是一个开始的工作示例: HTML input #file type="file" multiple (change)="upload(file.files)" /span *ngIf="uploadProgress 0 u
使用新的Angular 4.3 HttpClient,如何在向客户端上报上传进度的同时上传和访问ASP.NET Core 2.0控制器中的文件?

解决方法

这是一个开始的工作示例:

HTML

<input #file type="file" multiple (change)="upload(file.files)" />
<span *ngIf="uploadProgress > 0 && uploadProgress < 100">
    {{uploadProgress}}%
</span>

打字稿

import { Component } from '@angular/core';
import { HttpClient,HttpRequest,HttpEventType,HttpResponse } from '@angular/common/http'

@Component({
    selector: 'files',templateUrl: './files.component.html',})
export class FilesComponent {
    public uploadProgress: number;

    constructor(private http: HttpClient) { }

    upload(files) {
        if (files.length === 0)
            return;

        const formData = new FormData();

        for (let file of files)
            formData.append(file.name,file);

        const req = new HttpRequest('POST',`api/files`,formData,{
            reportProgress: true,});

        this.http.request(req).subscribe(event => {
            if (event.type === HttpEventType.UploadProgress)
                this.uploadProgress = Math.round(100 * event.loaded / event.total);
            else if (event instanceof HttpResponse)
                console.log('Files uploaded!');
        });
    }
}

调节器

[HttpPost,DisableRequestSizeLimit,Route("api/files")]
public async Task UploadFiles()
{
    var files = Request.Form.Files; // now you have them
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读