Blazor Server模式
有一个截图功能,调用js获取截图的base64图像,当图像超过50k (可能更低,没有验证),c#代码无法获取base64字符串。
js:
function crop() {
cropper.crop();
let resultData = cropper.getCroppedCanvas();
if (result) {
result.innerHTML = '';
result.appendChild(resultData);
}
//inst.invokeMethodAsync("GetResult", resultDataUrl);
return resultData.toDataURL("image/jpeg", 0.8);
}
C#:
var base64encodedstring = await Module!.InvokeAsync<string>("crop");
拿不到js函数 "crop" 返回数据
private IJSObjectReference? Module { get; set; }
public async Task<string> GetCropImage()
{
var base64encodedstring = await Module!.InvokeAsync<string>("crop");
return base64encodedstring;
}
解决:
可以设置Signalr 的最大接受size,这里我没有做限制,大概是因为BlazorServer是通过Signalr通讯连接的吧
services.AddSignalR(hubOptions =>
{
hubOptions.MaximumReceiveMessageSize = null;
});