0

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

0 回答 0