通过SignalR-Blazor获取大数据



我有一个组件库,它使用JS代码生成一个图像作为base64字符串,该图像需要转换到C#。图像大小大于MaximumReceiveMessageSize。

我可以在C#中获取MaximumReceiveMessageSize属性的值吗?我需要一种方法来正确地将图片分割成块,或者其他一些方法来传输它

我的组件可以在Wasm或Server应用程序中使用。我无法更改MaximumReceiveMessageSize属性的值。

感谢

使用从JavaScript到.NET的stream中描述的流解决了我的问题。

来自Microsoft文档:

在JavaScript中:

function streamToDotNet() {
return new Uint8Array(10000000);
}

在C#代码中:

var dataReference = await JS.InvokeAsync<IJSStreamReference>("streamToDotNet");
using var dataReferenceStream = await dataReference.OpenReadStreamAsync(maxAllowedSize: 10_000_000);
var outputPath = Path.Combine(Path.GetTempPath(), "file.txt");
using var outputFileStream = File.OpenWrite(outputPath);
await dataReferenceStream.CopyToAsync(outputFileStream);

在前面的例子中:JS是一个注入的IJSRuntime实例。dataReferenceStream被写入当前用户的临时文件夹路径(GetTempPath(的磁盘(file.txt(。

相关内容

  • 没有找到相关文章