Вот мой метод страницы бритвы, который получает изображения:
Код: Выделить всё
private async Task HandleImageUpload(InputFileChangeEventArgs e)
{
IsLoading = true;
try
{
var files = e.GetMultipleFiles();
var validFiles = new List();
foreach (var file in files)
{
var fileInfo = new System.IO.FileInfo(file.Name);
if (fileInfo.Extension.ToLower() == ".jpg" ||
fileInfo.Extension.ToLower() == ".png" ||
fileInfo.Extension.ToLower() == ".jpeg")
{
validFiles.Add(file);
}
else
{
await _jsRuntime.ToastrError("Please select .jpg/.jpeg/.png file only");
IsLoading = false;
return;
}
}
var imageUrls = await _fileUpload.UploadFiles(validFiles);
Product.ImageUrls.AddRange(imageUrls);
}
catch (Exception ex)
{
await _jsRuntime.ToastrError(ex.Message);
}
finally
{
IsLoading = false;
}
}
Код: Выделить всё
public async Task UploadFiles(IEnumerable files)
{
var filePaths = new List();
try
{
foreach (var file in files)
{
var fullPath = "";
FileInfo fileInfo = new(file.Name);
var fileName = Guid.NewGuid().ToString() + fileInfo.Extension;
var folderDirectory = $"{_webHostEnvironment.WebRootPath}\\images\\product";
if (!Directory.Exists(folderDirectory))
{
Directory.CreateDirectory(folderDirectory);
}
var filePath = Path.Combine(folderDirectory, fileName);
await using var fs = new FileStream(filePath, FileMode.Create);
await file.OpenReadStream(MaxFileSize).CopyToAsync(fs);
fullPath = $"/images/product/{fileName}";
filePaths.Add(fullPath);
}
return filePaths;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}

Вот странная ошибка, которую я получаю:
Код: Выделить всё
Microsoft.JSInterop.JSException
HResult=0x80131500
Message=e is null
Qe@http://localhost:7253/_framework/blazor.server.js:1:37025
readFileData@http://localhost:7253/_framework/blazor.server.js:1:36985
beginInvokeJSFromDotNet/s
Подробнее здесь: [url]https://stackoverflow.com/questions/78816542/blazor-server-net-8-multiple-image-upload-problem[/url]
Мобильная версия