首页 > 解决方案 > 带有进度跟踪c#的文件上传

问题描述

我对 Web 开发相当陌生,目前正在使用 Angular 5 前端、c# 后端、使用 ASP.NET Core 为客户端构建一个网站。我遇到的问题是我可以传递文件并上传它,但想要某种方式来跟踪上传过程,就像在上传文件之前一样,我会运行一大堆格式检查,这可能需要 10-15 分钟到文件的大小。

有没有办法拥有两个 HTTP 请求,一个将启动进程并返回一个进程已开始的指示符,另一个可以从前端定期调用,并提供验证发生的状态更新。

提前致谢!

标签: c#angularwebasp.net-coreangular5

解决方案


首先 - 如果您需要等待 15-20 分钟,就会出现问题 - 您可能需要为此创建单独的工作线程(搜索 asp.net 核心的后台工作)并在使用 SignalR 之类的东西后向客户端广播消息.

关于进度 - JQuery deferred 支持进度方法。我相信有一个承诺的实现。SignalR 也支持它。

接下来,您需要以某种方式在服务器端实现它 https://blogs.msdn.microsoft.com/dotnet/2012/06/06/async-in-4-5-enabling-progress-and-cancellation-异步 apis/

进度示例:

https://www.codeproject.com/Articles/1124691/SignalR-Progress-Bar-Simple-Example-Sending-Live-D

希望它足以开始。


推荐阅读