I am trying to use SteveSanderson's BlazorInputFile package to upload files in a Blazor WASM app. (Server/Client setup). I installed the package according to the instructions on his blog post.
My api takes in the file in a byte[] so I am converting the file from a Stream to byte[], and then posting to my API endpoint in the Server.
private async Task Upload(InputFileChangeEventArgs e)
{
MemoryStream ms = new MemoryStream();
e.File.OpenReadStream().CopyTo(ms);
var bytes = ms.ToArray();
UploadFile file = new UploadFile
{
FileName = e.File.Name,
FileContent = bytes,
Size = e.File.Size,
ContentType = e.File.ContentType
};
await Http.PostAsJsonAsync<UploadFile>("/api/uploadfile", file);
await OnInitializedAsync();
}
Unfortunately I keep getting an error/exception from BlazorInputFile which says "Synchronous reads are not supported".
I have tried to search the error and had various fixes (Browser adblocker could be blocking etc) but not of them has fixed the problem.
Looks like the issue is you are using the synchronous version of Stream.CopyTo Method which is the reason you are getting the error message about synchronous reads not being supported. I believe changing that line to:
await e.File.OpenReadStream().CopyToAsync(ms);
Will most likely solve your issue.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With