DurnyklyYol/DurnyklyYol.Blazor.Server/GoodsImageUpload.razor

41 lines
1.1 KiB
Plaintext

<!-- GoodsImageUpload.razor -->
@page "/upload-goods-images"
@inject IObjectSpace ObjectSpace
@inject IWebHostEnvironment Environment
<InputFile OnChange="HandleFileSelected" multiple />
@code {
[Parameter]
public Goods Goods { get; set; }
private async Task HandleFileSelected(InputFileChangeEventArgs e)
{
var files = e.GetMultipleFiles();
foreach (var file in files)
{
var imageName = $"{Guid.NewGuid()}_{file.Name}";
var path = Path.Combine(Environment.WebRootPath, "uploads", imageName);
Directory.CreateDirectory(Path.GetDirectoryName(path));
using (var fileStream = new FileStream(path, FileMode.Create))
{
await file.OpenReadStream().CopyToAsync(fileStream);
}
var imageUrl = $"uploads/{imageName}";
var goodsImage = ObjectSpace.CreateObject<GoodsImage>();
goodsImage.Goods = Goods;
goodsImage.ImageUrl = imageUrl;
Goods.Images.Add(goodsImage);
}
ObjectSpace.CommitChanges();
}
}