ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

首页> C#> ASP.NET如何报告UploadProgress?

2019-12-10 22:09:51  阅读:294  来源: 互联网

标签:angular file-upload asp-net c


基于此问答
ASP.NET Core 2.0 and Angular 4.3 File Upload with progress

ASP.NET返回HTTP事件-上传进度和最终响应:

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

Angular接受响应并处理:

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!');
        });

我的问题:

1)上面的ASP.NET代码的哪一部分告诉它必须响应UploadProgress,直到完成上传过程为止?如何知道这是一个需要响应UploadProgress的请求?返回UploadProgress的ASP.NET源代码中的代码在哪里? (https://github.com/aspnet/AspNetCore)

2)总体流程,这是HTTP规范吗?显然,有一条规则,到目前为止我找不到任何文档.

解决方法:

What part of the above ASP.NET code tells that it has to respond UploadProgress

都没有ASP.NET Core不会这样做.

> HttpPost表示您要接受POST请求形式的数据.
> DisableRequestSizeLimit表示您不希望ASP.NET Core阻止文件上传超过预定义的限制(我相信30 MB).
>路线定义路线的URL.

Overall flow, is this an HTTP specification? Clearly, there is a rule and I can’t find any documentation about it so far.

不,不是.这不是必需的.客户端知道成功发送了多少数据,这就是进度的来源.

Angular HTTP库建于XMLHttpRequest左右,其中包含Progress event

The progress event handler, specified by the updateProgress() function in this example, receives the total number of bytes to transfer as well as the number of bytes transferred so far in the event’s total and loaded fields. However, if the lengthComputable field is false, the total length is not known and will be zero.

Progress events exist for both download and upload transfers. The download events are fired on the XMLHttpRequest object itself, as shown in the above sample. The upload events are fired on the XMLHttpRequest.upload object…

因此,Angular HTTP库仅挂接到本地请求对象的progress事件,然后以更简洁的方式将它们提供给您.

标签:angular,file-upload,asp-net,c
来源: https://codeday.me/bug/20191210/2104482.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有