The "AAAA..." pattern indicates you're getting null bytes in your buffer. The issue is that ReadAsync(buffer)
doesn't guarantee reading the entire stream in one call.
Use CopyToAsync()
with a MemoryStream instead:
private async Task HandleFileSelected(InputFileChangeEventArgs e)
{
var file = e.File;
fileName = file.Name;
using var stream = file.OpenReadStream(maxAllowedSize: 10 * 1024 * 1024); // 10 MB limit
using var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
var bytes = memoryStream.ToArray();
base64String = Convert.ToBase64String(bytes);
}