c# - 在 Blazor Wasm 中使用 HttpClient 上传进度
问题描述
我正在尝试在 blazor Web 程序集应用程序中获取文件上传进度。
var handler = new ProgressMessageHandler();
handler.InnerHandler = new WebAssemblyHttpMessageHandler();
handler.HttpSendProgress += (object sender, HttpProgressEventArgs e) =>
{
Console.WriteLine("bytes transfered= " + e.BytesTransferred.ToString());
Console.WriteLine("total bytes= " + e.TotalBytes.ToString());
Console.WriteLine("progress percentage= " + e.ProgressPercentage.ToString());
};
var http = new HttpClient(handler);
http.BaseAddress = new Uri(NavigationManager.BaseUri);
await http.PostJsonAsync("api/...", attachedFile);
Console.WriteLine("Done");
我想出了以下代码,但是当我上传文件时,即使发布请求持续了几秒钟,我也会立即收到一个事件报告 100% 完成。
WASM: bytes transfered= 277983
blazor.webassembly.js:1 WASM: total bytes= 277983
blazor.webassembly.js:1 WASM: progress percentage= 100
关于处理上传进度的 SO 有一些问题,但如果可能,我想使用 Http.ProgressMessageHandler
解决方案
推荐阅读
- android - 使用不同的构建变体构建后如何解压缩 apk?
- c# - 如何在 EF 6 的 Fluent API 中映射 1 到 0 或 1 的关系
- java - 如何排除 maven 变量(与 ksh 变量的语法相同)
- c++ - 当我添加第二个源文件时,Qt,Make 失败
- javascript - Jquery/JS - css 工作但 attr 不工作
- perforce - 如何使用 P4JsApi 读取工作区文件内容?
- pandas - 如何使用 AWS KMS 加密 Pandas/Spark 数据框中的列
- java - 我从一个 JFrame 到另一个 Jframe 的链接不起作用
- javascript - 检查字符串中字符的 ASCII 码值是否大于或小于前一个字符的 ASCII 码值 - JavaScript
- vue.js - VueJS 2 - 组件上的默认点击事件