使用MatBlazor,我正在尝试上传文件。但是,某些东西阻塞了线程,整个应用程序也被阻塞了。我不知道为什么。似乎线程被阻塞,直到文件已加载到内存中为止。 是我的代码还是阻止线程的MatFileUploadEntry?
有人有什么主意吗?
致电:
<MatFileUpload OnChange="@FileUpload"></MatFileUpload>
响应:
private async Task FileUpload(IMatFileUploadEntry[] files)
{
var f = files.FirstOrDefault();
if (f.Name.IsValidFileFormat())
{
var file = await GetFileModel(f);
if (f.Name.IsImage())
Model.Image = file;
else
Model.Document = file;
}
}
private async Task<FileModel> GetFileModel(IMatFileUploadEntry f)
{
var sw = new Stopwatch();
sw.Start();
using var ms = new MemoryStream();
await f.WriteToStreamAsync(ms);
sw.Stop();
var base64String = Convert.ToBase64String(ms.ToArray());
return new FileModel
{
FileName = f.Name,
FileContentBase64 = base64String
};
}