c# - 带有进度跟踪c#的文件上传
问题描述
我对 Web 开发相当陌生,目前正在使用 Angular 5 前端、c# 后端、使用 ASP.NET Core 为客户端构建一个网站。我遇到的问题是我可以传递文件并上传它,但想要某种方式来跟踪上传过程,就像在上传文件之前一样,我会运行一大堆格式检查,这可能需要 10-15 分钟到文件的大小。
有没有办法拥有两个 HTTP 请求,一个将启动进程并返回一个进程已开始的指示符,另一个可以从前端定期调用,并提供验证发生的状态更新。
提前致谢!
解决方案
首先 - 如果您需要等待 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
希望它足以开始。
推荐阅读
- java - 自引用泛型是否违反多态性?
- django - 未加载 Django 自定义 405 模板
- excel - 将基于下拉列表的行值复制到列
- hadoop - Apache Hadoop:错误:无法设置数据节点进程的优先级
- clang - 使用带有 ast 匹配器的 clang 插件时,自编译的 Clang 与 ThreadSafeRefCountedBase 崩溃
- nativescript - 上下文注册的 SMS 接收器
- javascript - 检查按钮单击上的所有复选框,ReactJS
- typescript - Typescript 中的解构和重命名可选参数
- r - 如何让 R 逐行搜索大型数据集以查找两列之一中是否存在值,然后在缺少数据时返回值
- node.js - 如何使用 yeomon 生成器将目录复制到目标路径?