使用 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
};
}